2012-11-07 37 views
0

我有一個ArrayList:充分利用線串的字符串,從Java中的ArrayList中)

private static ArrayList<String> lista; 

static void fileReading() { 

inp = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(inFileNev), "ISO8859-1"))); 

      String sor; 
      while ((sor = inp.readLine()) != null) { 

       lista.add(sor); 
       lista.add(System.getProperty("line.separator")); 
} 

我需要從這個字符串,而不是整個行(如「pakcage」和「ASD」;) 。 我嘗試了這些,但沒有這些作品:

String[] temp=null; 
for(String s : lista) { 
    temp = s.split("\\W+"); 
} 
System.out.println(temp); 

我得到:[Ljava.lang.String; @ 6ef53890 如果我寫調用println內爲我得到相同,只是多了這一點。

如果我用這個:

String str ="" ; 
    for(int i=0; i<lista.size(); i++){ 
    str+=lista.get(i)+" "; 

    String[] temp = new String[str.length()]; 
    for(int i=0; i < str.length(); i++) { 
     temp[i]=str.valueOf(i); 
     System.out.println(temp[i]);   
    } 

我得到的只是數字,並不能弄清楚如何從STR獲得的字符串。 我需要知道字符串索引,並在以後進行替換。

回答

0

在這個例子中

String[] temp=null; 
for(String s : lista) { 
    temp = s.split("\\W+"); 
} 
System.out.println(temp); 

嘗試打印的對象將導致調用其toString()方法。實際上,您並未打印任何String值,而是一個Strings的數組,它是一個對象。

在您的第二個片段中,str.valueOf(i);返回「int參數的字符串表示形式」。

你可能想要做什麼是

  1. 分裂您的元素融入了一些表,就像你在這裏做temp = s.split("\\W+");
  2. 然後通過陣列使用foreach迭代:

哪會看像

for (String s : yourStringArray) { 
    System.out.println(s); 
} 

Hope這有助於......近一年後);