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

mmg*_*o27 4 java input java.util.scanner

 Scanner in = new Scanner(System.in,"UTF-8");
 System.out.println(in.next());
Run Code Online (Sandbox Code Playgroud)

如果我粘贴?,我收到?控制台的输出.有人可以解释我能做些什么来正确读取这样的逻辑符号?我正在使用NetBeans 8.0.1.

谢谢.

das*_*ght 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));
}
Run Code Online (Sandbox Code Playgroud)

如果8743被打印,你可以在内部处理角色:这样的比较

if (s.equals("?")) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

会正常工作.

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