我正在使用Scanner读取阿拉伯文件并将文本文件存储在ArrayList
中我有一个包含一些单词的词典,正面和负面的单词和它们的费率。
例如: سعيد+5 -4سيء
然后我检查文本文件中的每个单词用词典如果单词是负上升负计数器,如果是正数上升正计数器,最后进行比较以确定文件是正还是负
它适用于英语,但不适用于阿拉伯语,由于某种原因它会跳过数组中的第一个单词,即使它在词典上完全匹配 如果我在文本文件的开头按下Enter(新行),它就能完美地运行 我尝试添加一个新的行到ArrayList和文件作为新行的替代,但它不起作用它必须通过按Enter键添加
for (String word: wordsList) { // loop through user file
try { // compare words with dictionary
String line;
// read from the Dictionary file
File fileDir = new File("C:\\Users\\Ameera\\Desktop\\Dictionary.txt");
BufferedReader inDict = new BufferedReader(new InputStreamReader(
new FileInputStream(fileDir), "utf-8"));
while ((line = inDict()) != null) {
String strSplit[] = line.split("\t"); // Split Dictionary line after each tab to get the word only without its rate
// example will get (سعيد, سيد) only
/* سعيد +5
سيء -4
*/
if (strSplit[0].equals(word)) {
int rate2 = Integer.parseInt(strSplit[1]); // get word rate
sent += rate2; // add word rate to file totoal rate
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
谢谢大家,我非常感谢您的答复,我在这里找到答案(Removing BOM characters using Java) MC Emperor非常感谢 问题是因为字节顺序标记。