2015-02-05 23 views
0

我想將一個字符串放入一個數組,以便我可以按照不同的順序打印這些令牌,以便它們在我正在讀取的原始文件中。使用正則表達式分割Java將字符串放入數組的Java

下面是我到目前爲止的代碼,我還包括了我正在閱讀的輸入文件。我希望能夠做的是從原始文件打印一個單詞; system.out.println(tokens [4]); 這將打印 '物種'

import java.util.Scanner; 

public class inClassTest4Time { 

    public static void main(String[] args) { 

Scanner scan = new 
Scanner(inClassTest4Time.class.getResourcesAsStream("pet.txt")); 
String line; 
String[] tokens; 
    while (scan.hasNextLine()) 
    { 
     line = (scan.nextLine()); 
     tokens = line.split("//s"); 
     for (int i = 0; i < tokens.length; i++) { 
      System.out.println(tokens[i]); 

     } 

    } 


} 
} 

輸入文件:

Pet 
=================== 
- species : String 
+ isChipped : boolean 
- name : String 
- age : int 
=================== 
+ Pet (String name) 
=================== 

回答

2

我想你的意思是把\\s而不是//s//s實際上是基於文字字符串//s(即不轉義)進行分割。由於你的字符串都沒有,所以沒有分割。我懷疑如果你做tokens[2]你會得到- species : String

+0

我改變了它,我得到下面的輸出,如果我把system.out.println(令牌[4]);我得到這個輸出:線程「main」中的Pet異常java.lang.ArrayIndexOutOfBoundsException:4 InClassTest4.inClassTest4Time.main(inClassTest4Time.java:19)Java結果:1 – TheHadimo 2015-02-05 19:26:46

+0

是的,這是因爲在Java中,數組是基於零的,所以對於四個令牌你會得到令牌索引0,1,2和3。 – 2015-02-12 22:00:33

相關問題