【发布时间】:2012-12-18 09:41:51
【问题描述】:
假设我有一个这样的字符串数组:
0 ["Some plain text"]
1 ["Foobar chicken"]
我想在每个字符串(在数组的每个索引中)搜索特定的子字符串,比如plain,然后在找到子字符串的第一个实例时返回true。
最有效的方法是什么?
我知道我可以在 for 循环中执行简单的 break,但我听说有人说在 for 循环中使用 break 是不好的做法。我还听说使用while 和do-while 也不好。
我的实现
这是我使用 break 的简单实现:
for (String[] index : tmpList) {
retVal = index[2].toLowerCase().contains(keyword);
if (retVal) // Break when retVal is true
break;
}
地点:
-
tmpList是ArrayList<String[]> -
keyword是我想要找到的
【问题讨论】:
-
我会使用
indexOf(..) -
我在使用
break时看不到任何“坏”。 -
这些你听到的东西一般来说都是非常愚蠢的。当你找到子字符串时,只需执行一个循环并中断。例如,使用
String.contains()查找子字符串。 -
为什么 break 是不好的做法?这就像说强制退出循环是一种不好的做法。我可以找到数千种有用的情况。
-
如果您先分配
retval,然后进行测试,我会感觉更好。