2016-03-20 127 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

您的查找名稱的方法可能比分割線更有力,後者假定每條線具有相同的結構。你是否期望每一行可能有不同的結構? –

相關問題