【发布时间】:2013-05-22 03:44:55
【问题描述】:
对于我在 Java 和一般编程方面令人难以置信的新手,我想先向您道歉。但是我到处寻找答案,但似乎找不到。
所以我只是尝试运行以下命令:
public class WriteSquares2
{
public static void main(String[] args)
{
for (int i=1; i<=10; i++)
{
System.out.println(i + " \u2261 " + (i % 7) + " modulo 7");
}
}
}
Unicode 字符 \u2261 是全等符号 (≡)。 DrJava 显示以下输出:
1 ? 1 modulo 7
2 ? 2 modulo 7
3 ? 3 modulo 7
4 ? 4 modulo 7
5 ? 5 modulo 7
6 ? 6 modulo 7
7 ? 0 modulo 7
8 ? 1 modulo 7
9 ? 2 modulo 7
10 ? 3 modulo 7
最奇怪的是,当我只是输入时
'\u2261'
进入交互框,我得到单引号中的等价字符:
'≡'
我尝试在代码中简单地放入“\u2261”而不是“\u2261”,但后来我得到了这样的东西:
8803 modulo 7
8805 modulo 7
8807 modulo 7
我也尝试将 unicode 字符简单地插入代码中,但这只是给出了一条错误消息。谁能弄清楚发生了什么或我做错了什么?非常感谢您的帮助。
[我应该补充一点,这不是家庭作业或任何东西,因为我们的书甚至几乎没有提到 Unicode——只是想弄清楚这一点......当我开始时,我认为这不会这么难!]
编辑:我使用的是 Mac OS 10.7.5,Java 博士说它的版本是“drjava-20120818-r5686”。
编辑 #2:这是使用 Monospaced 12 作为我的主要字体的屏幕截图。它仍然显示为问号,即使我可以让控制台将符号返回给我,如果我直接输入它,但使用单引号。
【问题讨论】:
-
当我签入 Eclipse 时,它对我来说没有问题。没有 drjava....
-
当我签入 Eclipse 时,它不起作用。也没有 drjava;你并不孤单:S
-
也许您系统上使用的字体没有该字符的字形?
-
我认为这与“终端”的设置有关。例如,在 Windows 命令提示符下,如果您使用的代码页不包含您想要的字符,那么字符转换将失败并给您一个
?。通过chcp检查您的代码页。在 Unix 下,类似地,它受语言环境设置的影响。检查 LANG(我记得对吗?) env 变量以确保编码包含您需要的字符 -
@William 我可以在我的电脑上很好地输入所有字符——由于某种原因,它们不会出现在 DrJava 中。我会说它没有正确分配字体或什么?我不是一个真正的计算机“极客”(从积极的意义上说),所以除了基本的 GUI 之外,我对很多知识都不是很了解。 @Adrian 我应该补充说我正在使用 Mac ......不太确定我是否理解你的指示。也许是 Windows 的问题?