是否可以在for循环中包含String“arrayNames”,如下所示:for (String s:arrayLocations +String otherOne:arrayNames)
?我知道这段代码是错误的,但这只是为了解决这个问题。
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();
}
答案 0 :(得分: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
类的成员函数。
答案 1 :(得分: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();
}
答案 2 :(得分: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();
}
答案 3 :(得分: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();
}
}