2017-01-18 2 views
0

のようなので、私は文字列を含む入力ファイルを取っている:これらの文字列は、ArrayListのの一部である文字列のArrayListを渡し、それぞれの配列をそれ自身の文字列に変換する方法(Java)

birthday54 
happy75 
nifty43 
bob1994 

。個々の文字列を個別に取り出して個別に出力できるメソッドを介して、このArrayListを渡したいと思います。だから基本的に、私はどのように文字列のArrayListを取る個々の文字列を区切り、それらの文字列を印刷するのですか?私のコードでは、私のwhileループの条件は真ですので、ここに無限ループがあり、最初の文字列 "birthday54"を無限に出力しています。私はwhileループのためにどのような条件が必要かわかりません。または、私もwhileループが必要な場合。

public static void convArrListToString(ArrayList<String> strings){ 
      int i=0; 
      while (true){ 
       String[] convert = strings.toArray(new String[i]); 
       System.out.println(convert[i]); 
       } 
      } 
    public static void main(String [] args) 
{ 
    Scanner in = new Scanner(new File("myinputcases.txt")); 
    ArrayList<String> list = new ArrayList<String>(); 
    while (in.hasNext()) 
     list.add(in.next()); 

    convArrListToString(list); 
+0

あなたがやっていることはちょっと狂っています... –

+0

lol私は知っています。このarraylistを重複して文字列に変換する私の主な目的は、文字列を使ってそれらをasciiに変換することができますが、私はすでにその部分を分かっています。 – user7428413

+0

*文字列のArrayListをどのように取るか、個々の文字列を区切りますか?*文字列のリストは既に分離されています。あなたがしようとしていることは明らかではありません。 – shmosel

答えて

0

変更この:これに

while (true) { 
    String[] convert = strings.toArray(new String[i]); 
    System.out.println(convert[i]); 
} 

:あなたのiをインクリメントしていなかったので、それが唯一の "birthday54を" ouputs

for (String strTemp : strings) { 
    System.out.println(strTemp); 
} 

ここに私のコードです。あなたはwhile文の末尾にi++を入れてインクリメントすることができますが、ArrayListのすべての値を繰り返した後にエラーが発生します。私の答えを見て、あなたは単にforループを使用して、それを繰り返すことができますArrayList。見て痛いです

+3

確かに 'strings.forEach(System.out :: println);'を意味します。 – shmosel

+0

@shmoselええ、それは私の答えよりも絶対に短いです。ありがとう:) – msagala25

+0

ちょっと@shmosel、私はちょうど(コードを使用して)印刷し、別の異なる機能をそれらを渡すそれらの文字列を取ることができますか? – user7428413

0

マン、代わりにwhileループのこれを試してみてくださいません:必要な

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

ませwhileループ、配列リストがで反復することができるJavaでコンテナクラスであるコレクションオブジェクトでありますこれは配列リストの終わりに近づくまで、各文字列を1ずつ引き出すべきです。

Resource on collections in java

for(int i = 0 ; i < list.size(); i++){ 
    System.out.println(list.get(i)); 
} 

またはあなたが

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

歓声各ループのために使用することができます。

1

は、私はあなただけのArrayListを反復処理し、同様に各文字列を取得するには、「取得」メソッドを使用する必要があると信じて!

+0

@ scary-wombatありがとう! – manuel

関連する問題