我有一个具有以下结构的集合......
ArrayList<String[]> schools = new ArrayList<String[]>();
我还有一个字符串说“United Berkley”
现在我想搜索上面提到的字符串“schools”,如果 String [] <中有任何匹配,则返回 String [] / strong> array。
我有基本代码,但却找不到想要的正则表达式。
String target = this.Schools.get(s)[a];
if (target.matches("*")) {
schools.add(this.Schools.get(s));
}
答案 0 :(得分:1)
您的schools
数据结构看起来有点......很奇怪。
你确定你想要的不是ArrayList<String>
吗?
如果是这种情况,那么你可以使用:
if (schools.contains("United Berkley"))
答案 1 :(得分:1)
这个怎么样?
List<String[]> schoolsList = new ArrayList<String[]>();
String [] schools = {"United Berkley","Super Standford"};
schoolsList.add(schools);
String target = "United Berkley";
for(String [] school:schoolsList){
Arrays.sort(school);
int position = Arrays.binarySearch(school,target);
if(position>=0){
System.out.println("Found target");
}else{
System.out.println("Target is not in the list");
}
}
打印&#34;找到目标&#34;。
答案 2 :(得分:0)
只需使用String.equals(your-String)并循环遍历数组以匹配学校。或者使用list.contains(your-String)
但我想使用HashMap会为这类事情提供更好的访问时间。
答案 3 :(得分:0)
您不需要正则表达式来搜索已知字符串 - 只需使用target.equals ("United Berkley")
即可。您可以通过确保对String []数组进行排序来使自己更容易 - 使用Arrays.sort (...)使它们保持有序并使用Arrays.binarySearch(...)快速搜索它们。
我确实质疑你的数据结构的布局 - 它似乎不是做你想要的最自然的方式。 <{1}}甚至是简单的排序HashMap
会更好。
答案 4 :(得分:0)
您不需要正则表达式来搜索已知字符串 - 只需使用target.equals ("United Berkley")
即可。您可以通过确保对String []数组进行排序来使自己更容易 - 使用Arrays.sort (...)使它们保持有序并使用Arrays.binarySearch(...)快速搜索它们。
我确实质疑你的数据结构的布局 - 它似乎不是做你想要的最自然的方式。 <{1}}甚至是简单的排序HashMap
似乎更合适。