[英]Java Scanner cannot read words with accent mark
我的代碼有問題。 如果我在文件中添加帶重音符號的單詞,則Scanner不會讀取它。謝謝您的幫助。
例如,如果文件“ names.txt”包含:John Lil無
文件中的單詞數為3
但如果包含:JóhnLil無
文件中的單詞數為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
通過定義應使用的字符集來構造掃描器:
Scanner skener=new Scanner(file,"UTF-8");
我相信ASCII是Scanner的默認字符集,因此需要進行更改。 此外,該文件可能未使用UTF-8編碼。
我試圖得到您的錯誤,但對我有用。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.