我正在读取文本文件(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;
}
然后我尝试将其打印到控制台:
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");
}
其中fireStr
只是我的路径文件字符串。
它打印效果很好,但是列表对象(usernameList.size()
)的大小仅为1
。
打印输出为:
AA328747,AA337748,AA057393,AA290457,AA467620,AA225950,AA352105, AA108183,AA057070,结束
我希望它如何打印出来,就像:
AA328747结束
AA337748结束
AA057393结尾
AA290457结尾
AA467620结尾
AA225950结束
AA352105结尾
AA108183结尾
AA057070结尾
列表大小应大于1
个项目(在我的示例中,文本文件中的九个用户名,列表大小应为9
)。
如何摆脱逗号,仅将每个用户名评估为单独的字符串而不是一个大字符串?
答案 0 :(得分:1)
如下更新功能readUsername
。
while (username != null) {
List<String> tmp = Arrays.asList(username.split(","));
tmp.removeIf(u -> u.isEmpty());
list.addAll(tmp);
usernames = br.readLine();
}
答案 1 :(得分:1)
我相信您想要split()
方法。您可以使用Collections#addAll
直接将Array
产生的split
中的所有元素添加到List
中:
while (username != null)
{
Collections.addAll(list, username.split(","));
username= br.readLine();
}