从文件java中删除空格

时间:2014-06-11 08:13:05

标签: java file whitespace removing-whitespace

我正在尝试处理文本,首先删除停用词并对它们应用词干算法,最后将它们分成单词并将它们保存到文件中。 我做了所有这些,我遇到的问题是文件中包含以下单词的空格:

Hi
teacher

mother
sister
father .... and so on

问题在于老师和母亲之间的空间。 我想删除它。我无法弄清楚它的原因。

以下是相关代码的药水。

public void parseFiles(String filePath) throws FileNotFoundException, IOException {
    File[] allfiles = new File(filePath).listFiles();
    BufferedReader in = null;
    for (File f : allfiles) {
        if (f.getName().endsWith(".txt")) {
            fileNameList.add(f.getName());
            Reader fstream = new InputStreamReader(new FileInputStream(f),"UTF-8"); 
            in = new BufferedReader(fstream);
            StringBuilder sb = new StringBuilder();
            String s=null;
            String word = null;
            while ((s = in.readLine()) != null) {
                s=s.trim().replaceAll("[^A-Za-z0-9]", " ");        //remove all punctuation for English text
                Scanner input = new Scanner(s);
                  while(input.hasNext()) {              
                       word= input.next();
                       word=word.trim().toLowerCase();
                if(stopword.isStopword(word)==true)
                {
                    word= word.replace(word, "");
                }
                String stemmed=stem.stem (word);
                sb.append(stemmed+"\t");

                  }
                   //System.out.print(sb);

            }
            String[] tokenizedTerms = sb.toString().replaceAll("[\\W&&[^\\s]]", "").split("\\W+");   //to get individual terms  (English)

          for (String term : tokenizedTerms) {
               if (!allTerms.contains(term)) {  //avoid duplicate entry
                 allTerms.add(term);
                   System.out.print(term+"\t");
                 }
            }
            termsDocsArray.add(tokenizedTerms);
        }
    } 
    //System.out.print("file names="+fileNameList);
}

请帮忙。 感谢

3 个答案:

答案 0 :(得分:5)

为什么不使用if来检查该行是否为空?

while ((s = in.readLine()) != null) {
  if (!s.trim().isEmpty()) {
  ...
  }
}

答案 1 :(得分:1)

尝试这样的方法来消除所有空行:

String yourText = "teacher\nmother etc..";
String adjustedText = yourText.replaceAll("(?m)^[ \t]*\r?\n", "");

答案 2 :(得分:1)

在你的while循环中也添加这个条件,

while((s = in.readLine())!= null&&(!(StringUtils.isBlank(s)))){

//你的逻辑在这里。 }