示例是我想搜索代码A25和A29那么它会打印出来吗?我似乎找不到在arraylist中搜索长单词的语法。
ArrayList<String> arrList = new ArrayList<String>();
arrList.add("A25 CS 212 Data Structures 3");
arrList.add("A26 IT 312 Data Base Management System 2 3");
arrList.add("A27 IT 312 Data Base Management System 2 3");
arrList.add("A28 IT 212 Data Base Management System 2 3");
arrList.add("A29 CS 313 Digital Design 3");
arrList.add("A30 IT 212 Discrete Structures 3");
arrList.add("A25 IT 212 Discrete Structures 3");
arrList.add("984 Engl 3 Speech and oral Communication 3");
arrList.add("582 Theo 3 Christ and Sacraments 3");
arrList.add("470 Stata1 Probablility and Statistics 3");
arrList.add("999 Dota 2 Dota Guide 3");
System.out.println("Enter code to search");
int code = scan.next();
//Desired output
Enter code to search:
A29
A30
A29 CS 313 Digital Design 3
A30 IT 212 Discrete Structures 3
//
答案 0 :(得分:6)
你最好创建一个类,并将branch,rollno..etc等属性添加到该类,并将该类的对象添加到arrayList,并迭代和比较以找到您正在寻找的特定属性。现在很难搜索如此庞大的字符串并看起来很糟糕。
答案 1 :(得分:3)
这个怎么样?
String code = scan.nextLine();
for (String s : arrList) {
if (s.startsWith(code)) {
System.out.println(s);
break; //optional, depending on your use case
}
}
它应该输出你想要的。
答案 2 :(得分:1)
尝试以下代码
ArrayList<String> arrList = new ArrayList<String>();
arrList.add("A25 CS 212 Data Structures 3");
arrList.add("A26 IT 312 Data Base Management System 2 3");
arrList.add("A27 IT 312 Data Base Management System 2 3");
arrList.add("A28 IT 212 Data Base Management System 2 3");
arrList.add("A29 CS 313 Digital Design 3");
arrList.add("A30 IT 212 Discrete Structures 3");
arrList.add("A25 IT 212 Discrete Structures 3");
arrList.add("984 Engl 3 Speech and oral Communication 3");
arrList.add("582 Theo 3 Christ and Sacraments 3");
arrList.add("470 Stata1 Probablility and Statistics 3");
arrList.add("999 Dota 2 Dota Guide 3");
List <String> searchResult = new ArrayList<String>();
for (String content : arrlist) {
if(content.matches("a29")){
searchresult.add(content);
}
}
答案 3 :(得分:1)
试试这个
List <String> codes = new ArrayList<String>();//list of codes to search
codes.add("A25");
codes.add("A29");
List <String> result = new ArrayList<String>();//list of search results
for(String s:arrList)
for(String code:codes)
if (s.startsWith(code))
result.add(s);
for(String s:result)
System.out.println(s)
答案 4 :(得分:1)
您可以创建一个散列映射来存储键值对,而不是遍历每个输入搜索代码的所有数组列表,如下所示:
HashMap<String,String> map = new HashMap<String,String>();
map.put("A25","CS 212 Data Structures 3");
map.put("A26","IT 312 Data Base Management System 2 3");
.....
.......
现在,通过code
获取元素非常容易。使用HashMap#get(key)方法
String code = scan.nextLine();
System.out.println(code + " " + map.get(code));
这是您想要的输出。
但是,我会说@Task's answer是正确的。