Java 从文本文件中的某个点提取文本

Java extract text from text file from a certain point on the text

我使用 BufferedReader 创建了一个方法,该方法打开程序先前创建的文本文件并提取一些字符。我的问题是它提取了整行,我只想在指定字符 :.

之后提取

这是我的 try/catch 块:

try {
    InputStream ips = new FileInputStream("file.txt"); 
    InputStreamReader ipsr = new InputStreamReader(ips); 
    BufferedReader br1 = new BufferedReader(ipsr); 

    String ligne;
        while((ligne = br1.readLine()) != null) {
            if(ligne.startsWith("Identifiant: ")) {
                System.out.println(ligne);
                id = ligne;
            }
            if(ligne.startsWith("Pass: ")) {
                System.out.println(ligne);
                pass = ligne;
            }
        }
        System.out.println(ligne);
        System.out.println(id);
        System.out.println(pass);
        br1.close();
    } catch (Exception ex) {
        System.err.println("Error. "+ex.getMessage());
    }

目前,我 return 到我的 String id 整个 lignepass 也是如此 – 顺便说一句,所有 sysout 是测试,在那里没用。

如果有人知道如何将 : 之后的行而不是整行发送到 id,我可能搜索不好,但 google 不是我的朋友。

假设字符串中只有一个 : 符号,您可以使用

 id = ligne.substring(ligne.lastIndexOf(':') + 1);

使用 StringUtils

StringUtils.substringAfter(id ,":"),

你为什么不尝试在 ligne 上做一个 split()

如果你使用 String[] splittedLigne = ligne.split(":");,你将在 splittedLigne 中有以下内容:

splittedLigne[0] -> :

之前是什么

splittedLigne[1] -> :

之后是什么

这将为您提供每一行所需的内容。此外,如果您有多个 :.

,这将对您有用