哟,我得到了这段代码,它可以将一个文本文件中的所有字符串逐行打印到另一个文本文件中。它工作得很好,但恐怕我们在使用 .isEmpty() 时受到限制。除了 .isEmpty() 之外,第二个 while 语句还有其他条件吗?就像计算行的大小并在每次循环时将其减少单词的大小?我尝试了 line.length > 0,声明 int size = line.length() - 1 并按 size -= 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!");
}
}
}
请帮忙,谢谢。
最佳答案
根据the docs当且仅当字符串的长度为零时,isEmpty()
返回true
。您可以非常轻松地执行完全相同的检查,而无需使用 isEmpty()
:
while(word.length() > 0){
....
至于失败的尝试使用 length()
- 为了帮助您,您应该发布一些缺少的详细信息,例如您正在读取的文件的内容以及失败的行。
关于java - 在Java中从输入文本文件中的字符串中分离单词并将其逐行打印到输出文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840762/