【问题标题】:BufferedReader found specific word in line, take the data from that lineBufferedReader 在行中找到特定单词,从该行获取数据
【发布时间】:2015-05-09 09:37:04
【问题描述】:
 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”'这是什么意思?你想找到它吗?你的程序找到了吗?我想你想问一下,一旦找到“dod”这个词,你如何才能得到该行的其余部分。在这种情况下,您已经有了这条线:即 finalLine.
  • 您好,很抱歉缺少信息,这些线路将有 (line 1)dod, 12345, 00112949, test@testacc.com (line 2) abc, 22222, 0004993, aaa@aaaac.com在文本文件中。如果找到 dod,从上面的代码中,我想提取 line1 数据并保存在一个变量中。
  • @javasimple 请检查下面提供的代码是否适合您。您可以轻松地将信息存储在任何对象中。
  • 谢谢!效果很好!

标签: java arrays file bufferedreader


【解决方案1】:

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

您已经拥有它,在 finalLine 变量中。

【讨论】:

    【解决方案2】:

    请试试这个代码:

    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。如果您愿意,您可以将该信息存储在一个对象中。

    【讨论】:

    • 嗨,我没有投反对票,不知怎的,我的问题是,我猜是别人投的。
    【解决方案3】:

    看看这个:

     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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多