首页 > 解决方案 > 基于条件的 Java 子字符串

问题描述

我对Java很陌生,我想知道是否有一种有效的方法可以根据条件创建子字符串。

目前我正在读取一个 txt 文件并使用 BufferedReader 将该 txt 文件更改为字符串格式。

我收到了几个 txt 文件,但它们都具有相同的格式。我要提取的数据总是在第 45 行。而 txt 文件的第 45 行总是看起来像这样。

number : abcd

我想提取“abcd”部分。如果有人能告诉我是否有任何方法可以做到这一点,我们将不胜感激。

标签: javasubstring

解决方案


在特定行读取文件并使用正则表达式获取所需数据:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


class Main{

    public static void main(String[] args) {
        
        try{
                String line45 = Files.readAllLines(Paths.get("file.txt")).get(44);

                String pattern = "\\: (.*)"; // Capture everything after ':' colon character

                Pattern r = Pattern.compile(pattern);
                Matcher m = r.matcher(line45);
                if (m.find( )) {
                    System.out.println("Found value: " + m.group(1) );
                }

        }catch (IOException e) {
            System.out.println("entry not found.");
        }
    }
}

Found value: abcd

分配m.group(1)给变量并根据需要使用数据。


推荐阅读