我的CODE有问题。如果我在文件中添加带重音标记的单词,扫描仪就不会读它。谢谢你的帮助。
例如,如果文件“names.txt”包含: 约翰 律 无
文件中的单词数为3
但如果包含: 约翰 律 无
文件中的单词数为0
代码是:
File file=new File("names.txt");
Scanner skener=new Scanner(file);
int count=0;
while(skener.hasNext()){
aArrayListOfNames.add(skener.next());
count++;
}
skener.close();
System.out.println("Count is "+count);
return count;
谢谢大家,问题搞定了! :d
答案 0 :(得分:4)
通过定义应使用的字符集构建扫描程序:
Scanner skener=new Scanner(file,"UTF-8");
我认为ASCII是Scanner的默认字符集,因此需要进行更改。此文件也可能不以UTF-8编码。
答案 1 :(得分:0)
我试图得到你的错误,但它对我有用......
private static void getStrings() throws FileNotFoundException {
List<String> nameArray = new ArrayList<String>();
File file = new File("C:\\Users\\XXX\\workspace\\stackoverflowtest1\\src\\stackoverflowtest1\\names.txt");
Scanner scanner= new Scanner(file);
int count = 0;
while (scanner.hasNext()) {
nameArray.add(scanner.next());
count++;
}
scanner.close();
System.out.println("Count is " + count);
System.out.println("1 - " + nameArray.get(0));
System.out.println("2 - " + nameArray.get(1));
System.out.println("3 - " + nameArray.get(2));
}
输出:
Count is 3
1 - Jóhn
2 - Lil
3 - None