【问题标题】:How can I get specific data element in a text file [closed]如何在文本文件中获取特定数据元素 [关闭]
【发布时间】:2016-03-20 05:15:14
【问题描述】:

我有一个文本文件和两列(姓名和生日)。在第一列中,我有两个名字(约翰和布雷恩)。我只想得到名字 brayn 和他的生日。我怎样才能做到这一点?

我的文本文件:

姓名生日
约翰   1991
布雷恩  1994

在我试过的代码sn-p下面:

import java.io.*;

class Detail{
    public static void main(String[] args) throws Exception {
        users u=new users();
        if(args.length==1){
            System.out.println("No Details");
        }else{
            FileReader reader = new FileReader("users.txt");
            BufferedReader buffer= new BufferedReader(reader);

            String line = null;

            while ((line = buffer.readLine()) != null) {
                u.addToSearchString(line+'\n');
            }
            buffer.close();
            u.printName();
            }
        }
} 

class users{

    String names;

    users(){
        names=new String();
    }

    void addToSearchString(String add){
        names += add;
    }

    void printName() {
        int i = 0;
        int find, start, end;
        while ((find = names.indexOf("name:", i))!=-1){
            start = find + 5;
            end = names.indexOf("\t", start);
            System.out.println(names.substring(start, end));
            i = end + 1;
        }
    }
}

只想获取文本文件中brayn的行并将其分配给变量。

【问题讨论】:

    标签: java io bufferedreader


    【解决方案1】:

    假设每一行将始终具有上述示例数据中的格式,那么您可以简单地拆分文本文件的每一行并保留第二个字符串:

    String line = "name: brayn birthday: 1994";
    String[] parts = line.split(" ");
    
    String name = parts[1];
    System.out.println(name);
    

    输出:

    brayn
    

    【讨论】:

    • 我不能使用printName()方法来参数检查名称。
    • 您查找名称的方法可能比拆分行更健壮,后者假定每行具有相同的结构。您是否期望每行可能具有不同的结构?
    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多