Java 如何拆分返回的列表<;字符串>;通过文本文件中的逗号?
我正在从一个文本文件(Java 如何拆分返回的列表<;字符串>;通过文本文件中的逗号?,java,list,bufferedreader,filereader,Java,List,Bufferedreader,Filereader,我正在从一个文本文件(usernames.txt)读取数据,该文件的值用逗号分隔: AA328747、AA337748、AA057393、AA290457、AA467620、AA225950、AA352105、, AA108183、AA057070、 使用我的方法: public static List<String> readUsername(String path){ File file = new File(path); Reader
usernames.txt
)读取数据,该文件的值用逗号分隔:
AA328747、AA337748、AA057393、AA290457、AA467620、AA225950、AA352105、,
AA108183、AA057070、
使用我的方法:
public static List<String> readUsername(String path){
File file = new File(path);
Reader fileReader;
List<String> list = new ArrayList<String>();
String username;
try
{
fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader);
username = br.readLine();
while (username != null)
{
list.add(username);
username= br.readLine();
}
br.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return list;
}
公共静态列表readUsername(字符串路径){
文件=新文件(路径);
阅读器文件阅读器;
列表=新的ArrayList();
字符串用户名;
尝试
{
fileReader=新的fileReader(文件);
BufferedReader br=新的BufferedReader(文件读取器);
username=br.readLine();
while(用户名!=null)
{
列表。添加(用户名);
username=br.readLine();
}
br.close();
}
catch(filenotfounde异常)
{
e、 printStackTrace();
}
捕获(IOE异常)
{
e、 printStackTrace();
}
退货清单;
}
我尝试将其打印到控制台:
List<String> usernameList = readUsername(fileStr);
for (int i=0; i < usernameList.size(); i++)
{
System.out.println(usernameList.size());
System.out.println(usernameList.get(i) + " end");
}
List usernameList=readUsername(fileStr);
对于(int i=0;i
其中fireStr
只是我的路径文件字符串
它打印得很好,但是列表对象(usernameList.size()
)的大小只有1
打印件为:
AA328747、AA337748、AA057393、AA290457、AA467620、AA225950、AA352105、,
AA108183、AA057070,完
我希望它的打印方式如下:
AA328747结束
AA337748结束
AA057393完
AA290457完
AA467620结束
AA225950结束
AA352105结束
AA108183结束
AA057070结束
列表大小应该大于1
项(在我的示例中,文本文件中的九个用户名的列表大小应该是9
)
如何去掉逗号,将每个用户名作为单独的字符串而不是一个大字符串进行计算?如下更新函数
readUsername
while (username != null) {
List<String> tmp = Arrays.asList(username.split(","));
tmp.removeIf(u -> u.isEmpty());
list.addAll(tmp);
usernames = br.readLine();
}
while(用户名!=null){
List tmp=Arrays.asList(username.split(“,”);
tmp.removeIf(u->u.isEmpty());
list.addAll(tmp);
usernames=br.readLine();
}
我相信您需要该方法。您可以使用直接将split
生成的数组中的所有元素添加到列表中
:
while (username != null)
{
Collections.addAll(list, username.split(","));
username= br.readLine();
}
我想你正在寻找split()
方法String::split
像这样的usernameList.get(I).split(“,”)
?我想这是我得到的两个回答之间比较优雅的答案。非常感谢。