嘗試使用lambdaj(下載here,website)和hamcrest(下載here,website),該庫非常強大的管理收藏,下面的代碼是非常簡單,完美的作品:
import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.select;
import static org.hamcrest.Matchers.containsString;
import java.util.Arrays;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<String> list = Arrays.asList("A","BB","DCA","D","x");
String strTofind = "C";
System.out.println("List: " + list.toString());
boolean match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
System.out.println("The string " + strTofind + (!match?" not":"") + " exists");
strTofind = "X";
match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
System.out.println("The string " + strTofind + (!match?" not":"") + " exists");
}
}
這說明:
List: [A, BB, DCA, D, x]
The string C exists
The string X not exists
基本上在一條線,你可以搜索的字符串是在陣列中的任何strinf:
boolean match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
有了這個庫,你可以在一行解決您的問題。你必須添加到你的項目:hamcrest-all-1.3.jar和lambdaj-2.4.jar希望這會有用。
注:在我的例子我用一個列表,然後,如果你想使用一個數組:Arrays.asList(array)
(數組是字符串[])
循環將不得不在某個地方使用。你可以使用'while'而不是'for'? –
這裏「全球化」是什麼意思?你的問題很不清楚。 –
感謝您的建設性和幫助解答Luiggi。 –