2016-12-15 34 views
0

对不起,如果这很明显,但我是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

的可能的复制[读/写有特殊字符的.txt文件(http://stackoverflow.com/questions/4597749/read-write-txt-file-with-special-characters) – VGR

+0

这个问题可能不是你的代码;这是你的输出被打印在无法显示该字符的控制台中。 – VGR

+0

@VGR我的控制台在我的第二个例子中显示那个角色。 –

回答

0

我不认为扫描仪类读取默认为UTF-8编码的文本,所以将其替换您的扫描仪实例:

Scanner sc = new Scanner(System.in, "utf-8"); 
+0

出于好奇,“utf-8”到底做了什么?此外,它仍然打印一个问号。 –

+0

@JavaNewbie UTF-8是一种字符编码。请参阅:https://en.wikipedia.org/wiki/UTF-8 – marknorkin

0

看来你输入的字符集不是UTF-8。试试这个:

Scanner s = new Scanner(new InputStreamReader(System.in,Charset.defaultCharset())); 
+0

是否有我需要的任何进口产品? InputStreamReader和Charset都会说“找不到符号”。 –

+0

@JavaNewbie你在使用什么版本的java? Java 7中添加了Charset类:https://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html – marknorkin

+0

我相信NetBeans正在使用Java 7.在IDE Log,Java,它说1.7.0。 –

相关问题