以下是我的ArrayList contain
HPDH-1,001, Check-out date: 7/7/7
JTI-1,001, Check-out date: 7/7/7
我的代码:
for (int i = 0; i < contain.size(); i++) {
if (contain.get(i).contains(code)) {
System.out.println(contain.get(i));
}
}
事情是我的变量代码是字符串“JTI-1” 为什么不给我JTI-1输出? 我试图让它显示变量代码的值。 我想删除contains.get(i),如果它只是给我输入的那个。
答案 0 :(得分:10)
我认为从根本上说代码是正确的。我会检查你的输入,并确保它们真的是你的想法。
我可能会将你的循环重写为:
for (String s : contain) {
if (s.contains(code)) {
// found it
}
}
使用对象迭代器(上面假设你有一个ArrayList<String>
)。也许重命名contain
。目前还不是很清楚这是什么。
答案 1 :(得分:8)
假设字符串列表,代码是正确的。 I have not modified any of your source code just to give you idea that it works fine.
List<String> contain = new ArrayList<String>();
contain.add("HPDH-1,001, Check-out date: 7/7/7");
contain.add("JTI-1,001, Check-out date: 7/7/7");
String code = "JTI-1 ";
for (int i = 0; i < contain.size(); i++) {
if (contain.get(i).contains(code.trim())) {<---Use trim it is possible that code may have extra space
System.out.println(contain.get(i));
}
}
答案 2 :(得分:3)
您的代码是正确的,但我也建议您使用迭代器:
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<String> contain = new ArrayList<String>(Arrays.asList("HPDH-1,001, Check-out date: 7/7/7",
"JTI-1,001, Check-out date: 7/7/7"));
String code = "JTI";
// your loop
for (int i = 0; i < contain.size(); i++) {
if (contain.get(i).contains(code)) {
System.out.println(contain.get(i));
}
}
// my suggestion
for (String s : contain) {
if (s.contains(code)) {
System.out.println(s);
}
}
}
}
输出:
JTI-1,001,退房日期:7/7/7
JTI-1,001,退房日期:7/7/7
如果此输出不是您想要的,请添加更多信息。
答案 3 :(得分:0)
System.out.println("Find name");
String str = s.nextLine();
List<Integer> result = new ArrayList<Integer>();
for (int i = 0; i < surname.size(); i++) {
if(surname.get(i).equals(str)){
result.add(i);
}
}
for (Integer integer : result) {
System.out.println(integer);
}