如何让扫描的字符串包含特殊字符?

时间:2016-12-15 15:43:35

标签: java

很抱歉,如果这很明显,但我是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"相反,但我更愿意这样做。

提前谢谢。

2 个答案:

答案 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()));
相关问题