2013-02-06 326 views
1

如何在分隔符(「」)之後以字符串形式佔用空間,因爲只讀取其第一個名稱。分隔符與分隔符之間的空格和讀取空間

public class readfile { 

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

     String readFile = ""; 
     int i; 

     if (args.length == 1) { 
      readFile = args[0]; 

      BufferedReader reader = new BufferedReader(new FileReader(readFile)); 
      List<String> read = new ArrayList<String>(); 
      String rLine; 
      while ((rLine = reader.readLine()) != null) { 
       String[] items = rLine.split(" "); 

       if (items[0].equals("Name")) { 
        for (i = 1; i < items.length; i++) { 

         String name = items[1]; 

        } 

        System.out.println("Name is " + items[1]); 
       } 
      } 
     } 

    } 
} 


Classlist.txt 

Name Alice Mark 
Name Rebecca Appel 
Name Jonah BullLock Jacob 
Name Daniel Ethan Aron 

輸出:

名稱是愛麗絲 名稱是麗貝卡 名稱是約拿 名稱是丹尼爾

+0

你想實現什麼輸出? –

回答

0

更改如下行:

     for (i = 1; i < items.length; i++) { 

          String name = items[1]; 

         } 

到:

    String name = ""; 
        for (i = 1; i < items.length; i++) { 

         name += items[i]; 

        } 
+0

我試過,但它成爲 名稱是AliceMark 名稱是AliceMarkRebeccaAppel 名稱是AliceMarkRebeccaAppelJonahBullLockJacob 名稱是AliceMarkRebeccaAppelJonahBullLockJacobDanielEthanAron – newbieprogrammer

0

如果包含名稱的文件格式始終是相同的,即以「名稱」和地名部分之間只有一個空格,你可以使用下面的代碼來代替:

while ((rLine = reader.readLine()) != null) { 
    if (rLine.startsWith("Name ")) { 
     String name = rLine.substring(5); 
     System.out.println("Name is " + name); 
    } 
} 

輸出然後是例如'Name is Jonah BullLock Jacob'第三行。