2016-03-20 51 views
-2

我有一个文本文件和两列(名称和生日)。在第一栏中,我有两个名字(约翰和布兰恩)。我只想得到名字brayn和他的生日。我怎样才能做到这一点?如何获得文本文件中的特定数据元素

我的文本文件:

生日
约翰  brayn   1994年

下面的代码片段,我试图:

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的行并将其分配给变量。

回答

1

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

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

String name = parts[1]; 
System.out.println(name); 

输出:

brayn 
+0

这是正确的我不能使用printName()方法参数来检查名称。 – Blasanka

+1

您的查找名称的方法可能比分割线更有力,后者假定每条线具有相同的结构。你是否期望每一行可能有不同的结构? –

相关问题