簡體   English   中英

BufferedReader在一行中找到特定的單詞,從該行中獲取數據

[英]BufferedReader found specific word in line, take the data from that line

 br = new BufferedReader(new FileReader(file));

        while ((finalLine = br.readLine()) != null) {

            String[] reader = finalLine.split(",");

            String foundWord = "dod";

             for (String word : reader) {
              if (word.equals(foundWord)) {

              String NAME = reader[0];
              String PASSWORD = reader[1];
              String CONTACT_NO = reader[2];
              String EMAIL_ADDRESS = reader[3];

我目前正在使用BufferedReader讀取文本文件中的所有行,如果發現“ dod”如何在同一行1中獲取其余信息。請幫助。

線將有

(line 1) dod, 12345, 00112949, test@testacc.com 
(line 2) abc, 22222, 0004993, aaa@aaaac.com

在文本文件中,如果從上面的代碼中找到了dod,我想提取第1行數據並保存在變量中。

如果找到“ dod”,如何在同一行中獲取其余信息

您已經在finalLine變量中擁有它。

請嘗試以下代碼:

public static void main(String[] args) {
        BufferedReader reader = null;
        String line;
        String name,pwd,contactNo,email;
        try {
            reader = new BufferedReader(new FileReader("src/files/temp2.txt"));
            String foundWord = "dod";
            while ((line = reader.readLine()) != null) {
                String[] words = line.split(",");
                for (String word : words) {
                    if (word.equals(foundWord)) {
                        name = words[0];
                        pwd = words[1];
                        contactNo = words[2];
                        email = words[3];
                        System.out.println("Details: " +name + "-" + pwd + "-" + contactNo + "-" + email);
                    }
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
             reader.close()
        }
    }

輸出為: Details: dod-12345-00112949-test@testacc.com 如果需要,可以將該信息存儲在對象中。

看看這個:

 public class A {

    public static void main(String[] args) throws FileNotFoundException {

        boolean found = false;
        Scanner line = new Scanner(new File("E:/temp.txt"));
        String foundWord = "dod";
        while (line.hasNextLine()) {

            String[] reader = line.nextLine().split(",");

            for (String word : reader) {
                if (word.equals(foundWord)) {

                    found = true;
                    String NAME = reader[0];
                    String PASSWORD = reader[1];
                    String CONTACT_NO = reader[2];
                    String EMAIL_ADDRESS = reader[3];
                    System.out.println(NAME + "\t" + PASSWORD + "\t"
                            + CONTACT_NO + "\t" + EMAIL_ADDRESS);
                }

            }

        }
        if (!found) {
            System.out.println(foundWord + " not found");
        }
    }

}

如果找不到條件則添加

輸出:

dod  12345   00112949    test@testacc.com 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM