我有ArrayList<[String, String, String, String]>
来存储数据
现在,我正在尝试检查ArrayList
是否包含String
。
for(String i : checkArtefakts){
System.out.println(i);
if(headerAndBodyTestSuites.toString().contains(i)){
System.out.println(i + " " + headerAndBodyTestSuites.indexOf(headerAndBodyTestSuites.contains(i)));
}
}
我已经实施了toString()
方法,但它也没有解决我的问题。
如何查看每个Element of ArrayList ([String,String,String,String])
如果它包含我的search String
。
为什么它甚至不能在我的toString()
方法中找到它?
public String toString() {
return "[XQ: " + xqueryFileName + "] [Path: " + testDir + "] [INP: " + firstInputFile
+ "] [INP: " + secondInputFile + "] [EXP: " + expectedFile + "]";
}
ArrayList<HeaderAndBodyTestcase>
其中HeaderAndBodyTestcase
=
public HeaderAndBodyTestcase(final String xqueryFileName, final String testDir,
final String firstInputFile, final String secondInputFile, final String expectedFile)
答案 0 :(得分:4)
如果您使用的是List<String[]>
,则可以使用Arrays.asList()来检查String[]
是否包含使用.contains()
方法的字符串。
但在您的情况下,它是List
的{{1}},因此您需要在HeaderAndBodyTestcase
课程中实施contains
方法,以检查是否有任何类成员等于搜索的HeaderAndBodyTestcase
。
这应该是你的代码:
String
答案 1 :(得分:2)
您需要在类中实现一个方法,该方法将查看搜索字符串是否属于以下属性之一:
public boolean objectContainString(String search) {
return Arrays.asList(xqueryFileName, testDir, firstInputFile, secondInputFile, expectedFile)
.contains(search);
}
使用如下:boolean bool = list.stream().anyMatch(e -> e.objectContainString(search));
答案 2 :(得分:0)
你可以做一些简单的事情:
String searchedString = "SomeString";
boolean found = false;
for(String string : arrayList) {
if (searchedString.equals(string)){
found = true;
}
}
或者你可以使用java stream API。 (需要Java 8)
List<String> list = new ArrayList<>();
list.add("SOME_STRING_1");
list.add("SOME_STRING_2");
list.add("SOME_STRING_3");
String searchString = "SOME_STRING...";
if(list.stream().anyMatch((string)->string.equals(searchString))) {
// The string was in the list
} else {
// The string was not in the list
}
其中arrayList包含您的字符串。我不确定你的意思是ArrayList&lt; [String,String,String,String]&gt;,但这可能就是你要找的。 p>