我正在尝试从以下 txt 文件中删除逗号:
abcd,efgh,ijkl
mnop,qrst,uvwx
yzzz,0123,4567
8910
我的代码是这样的:
public static ArrayList readFileByLine(ArrayList list, String fileName){
try{
File file = new File(fileName);
Scanner reader = new Scanner(file);
reader.useDelimiter(",");
while(reader.hasNext()){
String s = reader.next();
s= s.trim();
s= s.replaceAll("," , "");
list.add(s);
}
reader.close();
}
catch(FileNotFoundException e){ System.err.println("Error: " + e.getMessage());}
return list;
}
除非绝对必要,否则我尽量不使用正则表达式,如果您建议我使用正则表达式,请解释它的作用!感谢您的帮助!
最佳答案
您的代码运行良好。我认为您遇到了其他问题,我不确定是什么。这是我使用的代码(您的代码经过一些修改):
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
List<String> list = readFileByLine(new ArrayList<String>(), "/Users/hassan/Library/Containers/com.apple.TextEdit/Data/Desktop/file.text");
for(String s : list){
System.out.println(s);
}
}
public static List<String> readFileByLine(ArrayList<String> list, String fileName){
try{
File file = new File(fileName);
Scanner reader = new Scanner(file);
reader.useDelimiter(",");
while(reader.hasNext()){
String s = reader.next();
s= s.trim();
s= s.replaceAll("," , "");
list.add(s);
}
reader.close();
}
catch(FileNotFoundException e){ System.err.println("Error: " + e.getMessage());}
return list;
}
}
此代码有效(尝试一下!)。我应该提到的是,我使用此代码的方式(将 ArrayList 作为第一个参数传递)是无用的,因为您可以在 readFileByLine 函数的开头创建一个新的 ArrayList。我不确定你是否这样做了,因为你想稍后将字符串重新添加到数组中,所以我不理会它。
关于java - 读入逗号分隔的文件列表,输出不带逗号而不迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369293/