Java 要设置的读线
编辑:Java 要设置的读线,java,set,readline,Java,Set,Readline,编辑: 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.util.HashSet; 导入java.util.Set; 公共y类{ Set setA=新的HashSet(); Set getSetA(BufferedReader br)引发IOException{ 弦线; 而((line=br.readLine())!=null){ setA.add(行); } br.close(); 迭代器iter=setA.Iterator()
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.util.HashSet;
导入java.util.Set;
公共y类{
Set setA=新的HashSet();
Set getSetA(BufferedReader br)引发IOException{
弦线;
而((line=br.readLine())!=null){
setA.add(行);
}
br.close();
迭代器iter=setA.Iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
返回刚毛;
}
}
我尝试将文件的每一行读入集合的元素。但似乎只有n行被添加到集合中。println只打印出全文中的n行。我的代码有什么问题?用一段时间替换if
import java.io.BufferedReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
public class y {
Set<String> setA = new HashSet<String>();
Set<String> getSetA(BufferedReader br) throws IOException {
String line;
while ((line = br.readLine()) != null) {
setA.add(line);
}
br.close();
Iterator<String> iter = setA.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
return setA;
}
}
后来
while ((line = br.readLine()) != null) {
setA.add(line);
}
Iterator iter=setA.Iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
将if/else替换为需要调试的选项。每次添加到集合时打印行
,以确定有多少字符串添加到集合中。否,它没有。您应该将迭代器声明(和初始化)移到while的上方,而在while的内部,您应该只对while(uter.hasNext())…答案进行编辑,以解决这个问题
Iterator<String> iter = setA.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}