如果列表中存在代码,我正在尝试将响应生成为真或假。因此,如果字符串包含“单个括号内”值,例如:“ABC(Q,E,1)EEE”,我能够生成响应,但如果字符串具有多个括号,例如:“B(A,1 )AA(E,Z)EE",我无法从中生成输出。我是编码和构建逻辑的新手,如果有人可以提供帮助,那就太好了。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter the code you want to check: ");
String input = scan.next();
List<String> codes = new ArrayList<>();
codes.add("ABC(Q,E,1)EEE");
codes.add("ABDCE(E,Z,X)E");
codes.add("B(A,1)AAEEE");
codes.add("R(1,2,3,4,5)RT(U,M,N,B,V,H)(Q,E,R,F,G,H)(R,Z)");
codes.add("B(A,1)AA(E,Z)EE");
for (Iterator<String> i = codes.iterator(); i.hasNext(); ) {
String code = i.next();
String prefix = code.substring(0, code.indexOf("("));
String suffix = code.substring(code.indexOf(")") + 1);
String middle = code.substring(code.indexOf("(") + 1, code.indexOf(")"));
String[] var = middle.split(",");
String[] result = new String[var.length];
for (int j = 0; j < var.length; j++) {
result[j] = prefix + var[j] + suffix;
if (result[j].equals(input)) {
System.out.println("True: This code is present");
}
}
}
}
输出(有效):
Enter the code you want to check:
BAAAEEE
True: The code is present
输出(不工作):
Enter the code you want to check:
BAAAZEE
<gives no output>
让我给你一个例子(对于“ABC(Q,E,1)EEE”)正在做的事情:它产生这个字符串的三个可能的输出,它们是:“ABCQEEE”、“ABCEEEE”、“ABC1EEE”。因此,如果我将输入指定为 "ABCQEEE" ,它将在内部生成这些输出,如果代码出现在列表中的任何位置,则输出为 True。
慕勒3428872
杨__羊羊
相关分类