2016-03-23 63 views
2

是否可以在下面的for循環中包含字符串「arrayNames」,如下所示:for (String s:arrayLocations +String otherOne:arrayNames)?我知道這個代碼是錯誤的,但這只是爲了讓這個想法貫穿始終。是否有可能在Java中使用兩個字符串數組的循環?

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

不,這不可能使用for-each。 –

回答

2

不要foreach迭代,而不是做for i ...(如果兩個陣列具有相同的尺寸...)

實施例:

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

不,這是不可能的,除非您創建一個由兩個輸入的聯合組成的新數組。但是,你基本上有三個循環。

(從語法上講,我不明白爲什麼形式for (String s: arrayLocations, arrayNames)的語法不能被採用到的語言。)

一種方式來處理,這是使用功能

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

並稱它爲兩次,通過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

你的意思是,你想要處理arrayLocations的第0個元素以及arrayNames的第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(); 
    } 
} 
相關問題