java - 在Java中从输入文本文件中的字符串中分离单词并将其逐行打印到输出文本文件

标签 java string file separator is-empty

哟,我得到了这段代码,它可以将一个文本文件中的所有字符串逐行打印到另一个文本文件中。它工作得很好,但恐怕我们在使用 .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/

相关文章:

java - 如何从 ArrayList<String[]> 获取 String[],我想实际从 ArrayList<String[]> 获取索引 0 处的 String?

java - Java 中的字符串扫描器

Java在FTP和客户端之间同步文件

php - 权限被拒绝 : copy/writing file (laravel/php)

java - Head First Java 问题 - 找不到主要方法

java - 如何使用 Strings.xml 更改文本值 - AndroidX

java - 在Java中如何用字符串替换任意字符?

java - checkmarx 报告中缺少 HSTS header

java - 使用Hibernate不会触发MySQL的 "ON UPDATE CURRENT_TIMESTAMP"

java - 文件未写入设备