0

我创建了一个方法,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());
    }

此刻,我String将整个 id 返回到我的 id 中ligne,对于pass- 顺便说一下,所有这些sysout都是测试,在那里毫无用处。

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

4

3 回答 3

1

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

 id = ligne.substring(ligne.lastIndexOf(':') + 1);
于 2015-05-18T08:44:26.083 回答
0

使用 StringUtils

StringUtils.substringAfter(id ,":"),

于 2015-05-18T08:47:06.323 回答
0

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

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

splittedLigne[0]-> 之前是什么:

splittedLigne[1]-> 后面是什么:

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

于 2015-05-18T08:48:10.490 回答