gpt4 book ai didi

java - Java 中的测试集成员资格

转载 作者:行者123 更新时间:2023-11-29 03:37:14 25 4
gpt4 key购买 nike

我很困惑为什么以下测试集成员资格的方法在我的程序中不起作用。如果我以任何文本文件作为参数运行以下程序,在输出中我只会看到“Second”。我认为两个 if 语句应该测试同一件事。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;



public class Exc0 {

public static void main(String args[]){
try {
File input = new File(args[0]);
BufferedReader reader = new BufferedReader(new FileReader(input));
int[] delimiters = {' ', '(', ',', ')'};

int current;
while ((current = reader.read()) != -1){
if ((Arrays.asList(delimiters).contains(current))){
System.out.println("First");
}
if (current == ' ' || current == '(' || current == ',' || current == ')'){
System.out.println("Second");
}
}


}
catch (IOException e){
e.printStackTrace();
}
}

}

最佳答案

发生这种情况是因为当您调用 Arrays.asList(delimiters) 时,您会得到一个包含单个 int[] 实例的列表,而不是包含四个 实例的列表int/整数.

一般来说,要检查字符集中的成员资格,您最好使用 String:

String delimiters = "() ,";
if (delimiters.indexOf(current) >= 0) {
System.out.println("First");
}

关于java - Java 中的测试集成员资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com