我尝试在屏幕上打印出包含西班牙口音的字符串。
我使用相同的输入但采用不同的方法得到不同的答案。
我的第一个方法是通过 Scanner 类读取包含西班牙口音的字符串
//input is a á e é i í o ó u ú A Á E É I Í O Ó U Ú Ñ ñ
Scanner sc = new Scanner(System.in);
System.out.println("Enter some spanish chars next: ");
String spanishLine = sc.nextLine();
try {
System.out.println("Output from Scanner: " + spanishLine);
System.console().writer().println(spanishLine);
} catch (Exception e) {
}
我的第二个apporche是我从这个网站找到的:http://www.rgagnon.com/javadetails/java-0046.html
String s = "a á e é i í o ó u ú A Á E É I Í O Ó U Ú Ñ ñ";
try {
System.out.println("Output from System.console: " + s);
System.console().writer().println(s);
} catch (Exception e) {
}
我的结果如下
Enter some spanish chars next:
a á e é i í o ó u ú A Á E É I Í O Ó U Ú Ñ ñ
output from Scanner: a � e � i � o � u � A � E � I � O � U � � �
output from System.console: a á e é i í o ó u ú A Á E É I Í O Ó U Ú Ñ ñ
谁能解释一下为什么我从相同的输入中得到两个不同的答案。
如何修复第一种方法以获得与第二种方法相同的结果?
使用第二种方法,字符串的字节直接输入到应用程序中。使用第一种方法,您依赖于扫描仪的区域设置
see
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#useLocale(java.util.Locale)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)