从控制台读取带有特殊字符的数组

时间:2014-09-11 15:28:53

标签: java arrays

我正在尝试这个:

Scanner keyboard = new Scanner(System.in);
char[] character = keyboard.next().toCharArray();
while (character.length != 5) {
     keyboard = new Scanner(System.in);
     character = keyboard.next().toCharArray();
}

直到你介绍5个字符一直要求你再次介绍5个字符但是当我尝试引入特殊字符'ñ'或'ç'时它不起作用,我已经尝试了它没有时间来打印结果并且唯一打印的是正方形。怎么能解决这个问题?

我正在使用NetBeans IDE 7.4。

通过它不起作用我的意思是我只是一直要求引入更多的字符,它只会被引入,直到你引入5个普通字符。

2 个答案:

答案 0 :(得分:1)

在两种情况下都使用操作系统的编码。

String encoding = "Cp1252"; // Western Latin-1
Scanner keyboard = new Scanner(System.in, encoding); // Twice!

如果您打印默认编码:

System.out.println(System.getProperty("file.encoding"));

您可能会看到IDE使用" UTF-8"或者。也就是说,它已经改变file.encoding。 但是System.in和System.out只需要使用原始编码。

答案 1 :(得分:1)

您可能需要查看this回答。

编辑NetBean的 etc 文件夹中的 netbeans.conf ,并将-J-Dfile.encoding=UTF-8添加到netbeans_default_options。然后重新启动。