首页 > 解决方案 > 如何拆分返回的列表来自文本文件的逗号?

问题描述

我正在从一个文本文件 ( 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文本文件中的九个用户名)。

如何摆脱逗号并将每个用户名评估为单独的字符串而不是一个大字符串?

标签: javalistbufferedreaderfilereader

解决方案


如下更新您的功能readUsername

while (username != null) {
     List<String> tmp = Arrays.asList(username.split(","));
     tmp.removeIf(u -> u.isEmpty());
     list.addAll(tmp);
     usernames = br.readLine();
}

推荐阅读