所以我现在有:
List<String> lineList = new ArrayList<String>();
String thisLine = reader.readLine();
while (thisLine != null) {
lineList.add(thisLine);
thisLine = reader.readLine();
}
System.out.println(lineList);
这主要是读取文本文件并返回文本文件中的数字。
我得到的输出是[0 6 13 0 0 75 33 0 0 0 4 29 21 0 86 0 32 66 0 0]
这似乎是正确的。但是,我要做的是删除所有零而不创建新数组。但是我必须将此字符串arraylist
转换为整数数组列表才能这样做吗?我怎么才能删除零?
谢谢!
答案 0 :(得分:3)
你只需修改你的while循环:
while (thisLine != null) {
if(!thisLine.trim().equals("0")) {
lineList.add(thisLine);
}
thisLine = reader.readLine();
}
编辑:
根据您的输入,上面的代码将不起作用,因为您将所有内容都放在一行中。您应该使用扫描仪来读取它:
Scanner s = new Scanner(new File(<your file path>));
List<Integer> lineList = new ArrayList<Integer>();
while(s.hasNextInt()){
int i = s.nextInt();
if(i!=0) {
lineList.add(i);
}
}
希望这有帮助。
答案 1 :(得分:1)
使用removeAll()方法从ArrayList中删除所有零...
lineList.removeAll(Collections.singleton(0));
答案 2 :(得分:0)
我会在while循环中使用它:
while (thisLine != null) {
if(!thisLine.equals("0"){
lineList.add(thisLine);
}
thisLine = reader.readLine();
}
答案 3 :(得分:0)
这样的事情可能就足够了吗?
for(Iterator<String> it=lineList.iterator(); it.hasNext();) {
String str = it.next();
if(str.equalsIgnoreCase("0")) {
it.remove();
}
}