java - 使用扫描器从一个字符串读取文件到另一个字符串

标签 java string java.util.scanner

我正在创建一个程序,我必须在其中读取特殊的文本文件。我在从指定单词到另一个指定单词(不包括这些单词)读取文本时遇到问题。使用扫描仪是解决这个问题的好方法吗? 我的意思是这样的:

“文本1

文本2

文本3

文本4

文本5“

我想从中获取带有“text2 text3 text4”的字符串。

我尝试使用 useDelimeter 但我不知道如何将其应用于这种情况。我创建了一种允许我跳过行的方法,但从长远来看这不是一个好的解决方案,它仅适用于一个指定的文件。

这是我想在这里实现的方法之一

private String readFile3(File file) {
        try {
            Scanner sc = new Scanner(file);
            //skipLine(sc, 8);
            sc.useDelimiter("R");

            String sentence = sc.next();
            textAreaD.setText(sentence);

        } catch (FileNotFoundException e) {
            System.out.println("No file");
        }       
        return null;
    }

最佳答案

像这样怎么样:

private String readFile3(File file) {
        try {
            Scanner sc = new Scanner(file);
            boolean save = false;
            String sentence = "";
            String temp = "";

            while (sc.hasNextLine()) {
                temp = sc.nextLine();
                if (sentence.contains("text1")) {
                    if (!save) {
                        temp = sc.nextLine();
                    }
                    save = true;
                }
                if (sentence.contains("text5")) {
                    save = false;
                }
                if (save) {
                    sentence = sentence + temp;
                }
            }
            // skipLine(sc, 8);
            //sc.useDelimiter("R");
             sentence = sentence.replaceAll("\\n", "");
             textAreaD.setText(sentence);

        } catch (FileNotFoundException e) {
            System.out.println("No file");
        }
        return null;
    }

应读出“text1”和“text5”之间的所有字符串。如果您也想保存它,也许您需要进行更多格式化并检查“text1”是否出现多次,但我希望它对您有所帮助。

关于java - 使用扫描器从一个字符串读取文件到另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56876575/

相关文章:

java - java swing中组合框的隐藏选项

java - LinkedBlockingQueue 程序不会终止

java - 从文件扫描器到数组

java - 当您不知道文件所在位置时,如何读取文件?

java - 嵌套 Case 语句时的 Sonar 问题

java - DecimalFormat ,输入 123.45 ,期望 0123.4500

swift - 核心数据 : Converting a String into an NSManagedObject instance

javascript - 使用 JavaScript 拆分名字和姓氏

string - Powershell 将环境变量与路径连接起来

java - 为什么我的程序不等待输入?