2016-03-23 12 views
2

以下のように、forループ内に文字列 "arrayNames"を含めることは可能でしょうか:for (String s:arrayLocations +String otherOne:arrayNames)?私はこのコードが間違っていることを知っていますが、これはアイデアを伝えることです。Javaの2つの文字列配列に対して1つのforループを使用できますか?

String[] arrayLocations = formattedLocations.split(","); 
String[] arrayNames = formattedNames.split(","); 

for(String s:arrayLocations) 
{ 
    Toast.makeText(context, s, Toast.LENGTH_LONG).show(); 
    Toast.makeText(context, toBeAdded, Toast.LENGTH_LONG).show(); 
} 
+2

いいえ、それはのために、each' '使用はできません。 –

答えて

2

(両方の配列が同じサイズであれば...)...代わりにfor iを行い、foreachで反復しないでください

例:配列を想定し

for (int i = 0; i < arrayLocations.length; i++) { 
    Toast.makeText(context, arrayLocations[i], Toast.LENGTH_LONG).show(); 
    Toast.makeText(context, arrayNames [i], Toast.LENGTH_LONG).show(); 
} 
+1

はい彼らは同じ長さです。ありがとう、私はあなたの答えをすぐに受け入れます。 –

3

ありませんあなたは2つの入力の和集合からなる新しい配列を作成しない限り、それは、ことはできません。しかし、基本的に3つのループがあります。

:これに対処するため

(。フォームfor (String s: arrayLocations, arrayNames)の構文は、言語に採用されなかった理由文法的には言えば、私が見ることができない)

一つの方法は、機能を使用することです

private foo(String[] ss) 
{ 
    for(String s:ss) 
    { 
     Toast.makeText(context, s, Toast.LENGTH_LONG).show(); 
    } 
} 

を2回呼び出し、arrayLocations、次にarrayNamesを渡します。おそらくfooは、あなたがそれを所有していると仮定して、あなたのToastクラスのメンバ関数になる可能性があります。

3

は同じ長さであります、

String[] arrayLocations = formattedLocations.split(","); 
String[] arrayNames = formattedNames.split(","); 


for(int i = 0; i < arrayLocations.length; i++) 
{ 
    Toast.makeText(context, arrayLocations[i], Toast.LENGTH_LONG).show(); 
    Toast.makeText(context, arrayNames[i], Toast.LENGTH_LONG).show(); 
} 
0

あなたが意味する、あなたはそうでarrayNamesとの0番目の要素と一緒にarrayLocationsの0番目の要素を処理したいですか?現代のforループでは不可能ですが、従来のものではかなり標準的です。

if (arrayLocations.length == arrayNames.length) { 
    for (int i = 0; i < arrayLocations.length; i++) { 
     Toast.makeText(context, arrayLocations[i], Toast.LENGTH_LONG).show(); 
     Toast.makeText(context, arrayNames[i], Toast.LENGTH_LONG).show(); 
    } 
} 
関連する問題