我对 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/