从输入文本文件中的字符串中分离单词,并在Java中逐行打印输出文本文件

时间:2014-09-15 04:18:56

标签: java string file separator is-empty

哟,我得到了这个代码,可以逐行将所有字符串从文本文件打印到另一个文本文件。它工作得很好,但我担心我们被限制使用.isEmpty()。除了.isEmpty()之外,第二个while语句还有其他条件吗?比如计算线的大小并按每个循环的单词大小递减它?我试过line.length> 0,声明int size = line.length() - 1并按大小递减 - = word.length();但我仍然有无限循环错误。

这是我的代码,

import java.io.*;

class fileStr{
    public static void main(String args[]){
        try{
            BufferedReader rw = new BufferedReader(new FileReader("inStr.txt"));
            PrintWriter sw = new PrintWriter(new FileOutputStream("outStr.txt"));
            String line = rw.readLine();
            while(line!=null){
                String word = line.substring(0,line.indexOf(" "));
                while(!word.isEmpty()){
                    sw.println(word);
                    line = line.substring(line.indexOf(" ") + 1) + " ";
                    word = line.substring(0,line.indexOf(" "));
                }
                line = rw.readLine();
            }
            rw.close();
            sw.close();
        }catch(Exception e){
            System.out.println("\n\tFILE NOT FOUND!");
        }
    }
}

请帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

根据the docs isEmpty()返回true当且仅当字符串的长度为零时。您可以非常轻松地执行此完全相同的检查,而无需使用isEmpty()

while(word.length() > 0){
    ....

至于尝试使用length()的失败 - 为了帮助你,你应该发布一些遗漏的细节,例如你正在阅读的文件的内容以及它失败的那一行。