如何从文本文件中用逗号拆分返回的 List<String>?
How to split a returned List<String> by comma from a text file?
我正在读取一个文本文件 (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, end
我希望它打印出来的方式如下:
AA328747 end
AA337748 end
AA057393 end
AA290457 end
AA467620 end
AA225950 end
AA352105 end
AA108183 end
AA057070 end
列表大小应超过 1
项(在我的示例中,对于文本文件中的九个用户名,列表大小应为 9
)。
我如何去掉逗号并将每个用户名作为单独的字符串而不是一个大字符串来计算?
更新您的函数 readUsername
,如下所示。
while (username != null) {
List<String> tmp = Arrays.asList(username.split(","));
tmp.removeIf(u -> u.isEmpty());
list.addAll(tmp);
usernames = br.readLine();
}
我相信您希望 split()
method. You can use Collections#addAll
直接将 split
生成的 Array
中的所有元素添加到 List
:
while (username != null)
{
Collections.addAll(list, username.split(","));
username= br.readLine();
}
我正在读取一个文本文件 (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, end
我希望它打印出来的方式如下:
AA328747 end
AA337748 end
AA057393 end
AA290457 end
AA467620 end
AA225950 end
AA352105 end
AA108183 end
AA057070 end
列表大小应超过 1
项(在我的示例中,对于文本文件中的九个用户名,列表大小应为 9
)。
我如何去掉逗号并将每个用户名作为单独的字符串而不是一个大字符串来计算?
更新您的函数 readUsername
,如下所示。
while (username != null) {
List<String> tmp = Arrays.asList(username.split(","));
tmp.removeIf(u -> u.isEmpty());
list.addAll(tmp);
usernames = br.readLine();
}
我相信您希望 split()
method. You can use Collections#addAll
直接将 split
生成的 Array
中的所有元素添加到 List
:
while (username != null)
{
Collections.addAll(list, username.split(","));
username= br.readLine();
}