如何使用Java Scanner读取命题逻辑符号作为输入?

4
 Scanner in = new Scanner(System.in,"UTF-8");
 System.out.println(in.next());

如果我粘贴 ,控制台会输出?。有人能解释一下我该怎么做才能正确地读取这样的逻辑符号吗?我正在使用NetBeans 8.0.1。
谢谢。

1
你怎么打出 '∧' 这个符号? - dejvuth
@dejvuth 抱歉,我是说粘贴。 - mmgro27
这可能是NetBean的问题。请尝试https://dev59.com/pVTTa4cB1Zd3GeqPoQTJ#27848261或那里的其他解决方案。 - dejvuth
2个回答

7
问题不在于输入字符,而是在于将其打印到控制台上。您的控制台似乎不支持代码点为\u2227,因此它会打印一个问号。
您应该测试一下控制台是否可以正确输入,方法是打印所读取的字符的数字表示,如下所示:
Scanner in = new Scanner(System.in,"UTF-8");
String s = in.next();
if (s.length() != 0) {
    System.out.println((int)s.charAt(0));
}

如果打印出了8743,那么您可以在内部处理该字符:像这样的比较。
if (s.equals("∧")) {
    ...
}

如果您使用的字符集是第一个代码页,即使用 ^ 而不是 ,则可以正常工作。

否则,您应该切换到使用第一个代码页中的字符,即使用 ^ 而不是


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接