无法读取阿拉伯文本文件的第一个单词

时间:2017-07-03 20:36:38

标签: java

我正在使用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();
   }
  }

1 个答案:

答案 0 :(得分:0)

谢谢大家,我非常感谢您的答复,我在这里找到答案(Removing BOM characters using Java) MC Emperor非常感谢 问题是因为字节顺序标记。