2013-10-04 49 views
0

我讀一個文件,該文件是在一個ArrayList

hello ja mes 24 
how are yo22u 

我使用下面的代碼從文件中讀取,並存儲在一個ArrayList<Character>的內容的單一元素存儲字符的組。

int readvalue; 

ArrayList<Character> store=new ArrayList<Character>(); 

    while ((readvalue = bufferReader.read()) != -1) 
    {  
     store.add((char)readvalue); 
    } 

    System.out.println(store); 

這給了我這樣一個輸出中:將它們分組

[h, e, l, l, o, , j, a, , m, e, s, , 2, 4, 
, h, o, w, , a, r, e, , y, o, 2, 2, u, 
] 

我要到array.I的單個元素所需的輸出,如:

hello , ,ja, ,mes, ,24, 
,how, ,are, ,you22u 

怎麼能我做到了?

+0

比如,你可以使用'的BufferedReader#.readLine()'和'String.split( 「\ W」)'。 –

+0

有沒有一種方法沒有使用拆分方法?我想通過只使用一些循環條件和數組函數來實現這一點。我不想使用正則表達式或任何內置函數。 – james

+1

使用'掃描儀'。 –

回答

0

肯定是有辦法做到這一點不分裂,讀取字符到緩衝區,直到「」或行結束時,如果你得到它,保存緩衝到ArrayList和清除它讀取下一個字


就像那個

String s = "hello ja mes 24\n" 
       + "how are yo22u"; 
    int readvalue; 

    BufferedReader bufferReader = new BufferedReader(new StringReader(s)); 
    ArrayList<String> store=new ArrayList<String>(); 

    StringBuilder builder = new StringBuilder(); 
    while ((readvalue = bufferReader.read()) != -1) 
    { 
     if(readvalue!=' ' && readvalue!='\n'){ 
     builder.append((char)readvalue); 
     }else{ 
     store.add(builder.toString()); 
     builder = new StringBuilder(); 
     } 
    } 

    store.add(builder.toString()); 

    System.out.println(store); 
+0

如何在這裏存儲空間? – james

+0

我想將這些字符組合成一個有意義的數組列表,例如:{你好,「字母」},{,「空間」},{ja,「字母」},{,「空間」},{mes, 「},{,」空格「},{24,」數字「}等等... – james

+0

我想創建名稱和值對 – james