java - Java 中使用 char[] 方法的特殊字符

标签 java char

我对 char[] 方法有一些问题。我正在研究java中的一些代码块。我需要在我的程序中使用土耳其语字符。但最初是用俄语编码的。

这里是原始代码

                TableRow row = null;
                int w = 0;
                for (char q = 'A'; q <= 'Я'; q++)
                {
                    if (w++ % columns == 0) {
                        row = new TableRow(AlphabetActivity.this);
                        addView(row);
                    }
                    final Button button = new Button(AlphabetActivity.this);
                    button.setBackgroundResource(R.drawable.selector_dashboard_button);
                    button.setText("" + q);
                    button.setTag(q);

用这个代码我得到了这个结果 /image/AqUCO.jpg

当我像这样改变这部分时

for (char q = 'a'; q <= 'z'; q++)

我得到了这个结果 /image/dZcZN.jpg

当我像这样改变时(这次我用键盘(手动)写“A”,我的意思不是原来的“A”)

for (char q = 'A'; q <= 'Я'; q++)

我有这个 /image/9a6ni.jpg

我真的不明白我在处理什么。 如果我使用这个(第一个代码)

for (char q = 'a'; q <= 'z'; q++)

并删除了此内容

int w = 0;
if (w++ % columns == 0)

我有这样的所有拉丁字母 https://imgur.com/7NdP0kU

但我需要土耳其字符。

我尝试了一些在 stackoverflow 上看到的解决方案,如下

char[] q ={ 'a', 'b', 'ç', 'd', 'e' };
char[] q = "abcdefghijklmnopqrstuvwxyz".toCharArray();

还有更多,但是当我尝试这些代码时,我得到了这个 /image/W4Jei.jpg

有高手可以帮助我吗?

最佳答案

I really didn't understand what i am deal with.

显示为 A 的原始源字符无疑是 Unicode 字符 U+0410,“西里尔大写字母 A”,而不是 U+0041,“拉丁大写字母 A”。后者是您在美国或西欧键盘上使用移动的“A”键生成的。您可以通过打印出相关字符的数值来验证这一点。

when i try these codes i getting this [garbage]

这是一个完全不同的问题:您正在打印数组的字符串值(通过 q.toString() 获得),这与包含数组字符的字符串不同(String.valueOf(q))。

只要您在保存文件时使用编译器期望的字符编码(可能是 UTF-8),并且该编码支持您想要的字符(UTF-8 支持所有 Unicode 字符),您应该能够将它们逐字写入源代码,并成功打印出来。

关于java - Java 中使用 char[] 方法的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56300623/

相关文章:

java - RequestMethod.DELETE 不起作用

c++ - 在 C++ 中将字符数组从索引 i 转换为字符串 j

java - 无法发布使用 eclipse 在 java 中创建的 Web 服务

java - ANTLR:处理表情符号字符

Java While 循环和一维数组

c - 为什么 "char array"需要两个 "[]"而 "int array"需要一个 "[]"?

计算二维网格中的字符数 C

c++ - 如何将 char 字符显示为 int,而不是 ASCII 符号

c++ - 输入C风格字符串并获取长度

java - 使用chef的Jenkins部署项目错误: NoMemoryError: failed to allocate memory