很抱歉,如果这很明显,但我是Java的新手。我无法找到任何回答这个问题(至少不是我能理解的)。我想要完成的是,当用户输入平方根符号(√)
时,包含所述符号的字符串。但是,当我打印它时,它只是一个问号。这是我的代码:
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println(s.substring(0,1));
我猜它与扫描仪有关,因为当我这样设置时,它可以正常工作。
String s = "√";
System.out.println(s.substring(0,1));
是否有一些(最好是简单的)方法来实现这一目标?我的目标不是打印他们输入的角色,而是打印为√
。万一有人好奇。我目前正在研究一个带有几个函数的简单计算器(包括平方根)。显然,我可以让用户键入类似" sqrt"相反,但我更愿意这样做。
提前谢谢。
答案 0 :(得分:0)
我不相信Scanner类默认会读取UTF-8编码的文本,因此请将您的扫描仪实例替换为:
Scanner sc = new Scanner(System.in, "utf-8");
答案 1 :(得分:0)
似乎您的输入字符集不是UTF-8。试试这个:
Scanner s = new Scanner(new InputStreamReader(System.in,Charset.defaultCharset()));