【发布时间】:2015-02-13 19:15:21
【问题描述】:
我想构建一个程序,该程序通过扫描仪输入一组字符串 (int T),并将它们存储在数组列表中。然后我想检查输入以查看它是否匹配或包含来自另一个数组的字符。
示例输入:
1 ABCD
示例输出:
好
问题:当我运行代码时,我没有得到“好”或“坏”的输出,而是出现错误并启动调试控制台。
确切的错误:
Scanner.throwFor() 行:不可用。找不到来源
import java.io.*;
import java.util.*;
public class RNA {
public static void main(String[] args) {
String X [] = {"A", "B", "C", "D"}; // Array to be checked against
List<String>A = new ArrayList(); // ArrayList to be imported
Scanner q = new Scanner(System.in);
System.out.println("How Many Sets of Strings do you want?");
int T = q.nextInt(); // number of Strings to be imported
q.nextInt(); // allows to reset Scanner
for(int i = 0 ; i < T; i ++){
A.add(q.nextLine()); //imports stuff to add to array A
}
Iterator<String> ListChecker = A.iterator();
while((ListChecker.hasNext())) { //continues as long as DNA Check has an index to go to
if (A.contains(X)) { //Checks A for X
System.out.println("Good"); //Prints out good if the check is good
}
else {
System.out.println("Bad"); //Prints out bad if the check is bad
}
}
}
}
【问题讨论】:
-
它是否为您提供了发生错误的行?
-
你能告诉我们它发生在哪里吗?
-
可能是您正在检查字符串对象吗?因为字符串对象有点挑剔,因为值可能相等但引用不相等。
-
我认为你应该检查数组的元素。所以,它应该是 if (A.contains(X[0]))。当然应该检查数组的每个元素
-
你检查 A 是否包含一个字符串数组(直接是
String[]对象),而不是它是否在这个数组中包含一个字符串(这个String[]里面是什么)。您的代码一团糟(使用更好的名称等来改进)。
标签: java arraylist iterator java.util.scanner