2017-06-16 13 views
-1

ご迷惑をおかけして申し訳ございません。基本的に、私はlist1というarraylistを持っています。リスト1には次のものが含まれています:ArrayListの各行の内容を分割する方法は?

a Mark 
c Peter 
r Edwin 
i Rachel 
f Sebastian 
p 

単数形の後に続く名前にはどうすればアクセスできますか?たとえば、「マーク、ピーター、エドウィン、レイチェル、セバスチャン」という名前だけにアクセスしたいと思います。私は最初の文字 "a、c、r、i、f、p"にアクセスする方法を知っていますが、残りの名前にアクセスする方法はわかりません。ここで私はこれまで持っているものです。

for (Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s = it.next(); 
     System.out.println(s.charAt(0)); 
    } 
    for (Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s1 = it.next(); 
     for (int i=2; i<s1.length(); i++){ 
      System.out.print(s1.charAt(i)); 
     } 

    } 

これは私の出力は次のようになります。

a 
c 
r 
i 
f 
p 
MarkPeterEdwinRachelSebastian 

しかし、私は、それは次のようになりたい:

c 
r 
i 
f 
p 
Mark 
Peter 
Edwin 
Rachel 
Sebastian 
+2

'for(String s1:list1)System.out.println(s1.substring(2)); ' – shmosel

+0

元の出力で' a ' –

答えて

1

あなたはほとんどそこにあります問題は内側forループです。 あなたは、それが改行を出力しないであろうと、すべてはStringのsplitメソッドを使用することがはるかに容易になり、空白スペースで各文字列を分割します

for (Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s = it.next(); 
     System.out.println(s.charAt(0)); 
    } 
    for (Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s1 = it.next(); 
     for (int i=2; i<s1.length(); i++){ 
      System.out.print(s1.charAt(i)); 
     } 
     System.out.println(); 
    } 
0

同じ行にとどまるprintを使用しているため。次に、文字と名前の2つの要素を持つ配列が結果として得られます。これは次のように動作するはずです:

for(String str : list1) 
    { 
     String[] splitted = str.split(" "); 
     System.out.println(splitted[0]); 
    } 

    for(String str : list1) 
    { 
     String[] splitted = str.split(" "); 
     System.out.println(splitted[1]); 
    } 
0

を代わりにイテレータを使用しての、あなたは、単に使用してリストを横切ることができるため、各
ショートコードに

for (String s : list1) { 
    System.out.println(s.charAt(0)); 
} 
for (String s : list1) { 
    System.out.println(s.substring(2)); 
} 
0

を私が正しく理解していれば、あなたの問題のように見えるだけです代わりに、この

(Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s1 = it.next(); 
     for (int i=2; i<s1.length(); i++){ 
      System.out.print(s1.charAt(i)); 
     } 

の書式設定の問題はやってみ

(Iterator<String> it = list1.iterator(); it.hasNext();) { 
     String s1 = it.next(); 
     for (int i=2; i<s1.length(); i++){ 
      System.out.println(s1.substring(2)); 
     } 

あなたのプリントでは、arraylistの別の行ではなく、1行ですべてが返されます。

関連する問題