Java - 通过字符串数组进行循环循环
问题描述:
所以我是编程新手。我有一个名为值的字符串数组,其中有大约150个字符串。而不是使用大量的if语句,我不想使用for循环,每次循环通过循环递增到数组中的下一个元素。我相信这是一个超级简单的修复,但我无法解决它。感谢您的任何建议!Java - 通过字符串数组进行循环循环
routeListView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String route = values[position];
int i;
for (i=0; i < values.length;i++) {
if (route.equals(values[0])) {
Intent intent = new Intent(view.getContext(), RouteDetails.class);
intent.putExtra("route", routeDetail[0]);
startActivity(intent);
}
values++;
}
/*if (route.equals(values[0])) {
Intent intent = new Intent(view.getContext(), RouteDetails.class);
intent.putExtra("route", routeDetail[1]);
startActivity(intent);
}
if (route.equals("Main Wall")) {
Intent intent = new Intent(view.getContext(), RouteDetails.class);
intent.putExtra("route", "Map of Main Wall");
startActivity(intent);
}
if (route.equals("1. Shark Bait - 5.9")) {
Intent intent = new Intent(MainActivity.this, RouteDetails.class);
intent.putExtra("route", "Shark Bait");
startActivity(intent);
}
*/
}
答
在循环内部,将硬编码的0替换为“i”。这将允许您的代码在循环的每个迭代中运行。例如,我将与0,则1,则2被替换等
for (int i=0; i<values.length; i++) {
if (route.equals(values[i])) {
Intent intent = new Intent(view.getContext(), RouteDetails.class);
intent.putExtra("route", routeDetail[i]);
startActivity(intent);
}
}
此外,也没有必要在末尾添加一个计数器的值,因为它是由第i ++在处理for循环。希望有所帮助!
+0
感谢ky你它完美的作品! – user4297729
答
看起来像你可以使用开关...如果你需要int和字符串比较你可以使用两个开关来做到这一点。
String route = values[position];
switch(position) {
case 0:
Intent intent = new Intent(MainActivity.this, RouteDetails.class);
intent.putExtra("route", routeDetail[0]);
startActivity(intent);
return;
case 1:
// Do stuff
return;
}
switch(route) {
case "Main Wall":
Intent intent = new Intent(MainActivity.this, RouteDetails.class);
intent.putExtra("route", "Map of Main Wall");
startActivity(intent);
return;
case "Shark Bait":
Intent intent = new Intent(MainActivity.this, RouteDetails.class);
intent.putExtra("route", "Shark Bait");
startActivity(intent);
return;
}
+0
谢谢。所以没有办法不必使用像150条语句或开关? – user4297729
此代码是否可编译? 'values'是一个'String []',它怎么能用'++ ++'来增加? –