java - 解析文本文件的最简洁方法

标签 java arrays arraylist bufferedreader

然后将每一行分成三个部分,并将这些部分放入单独的 String[] arrays 中?

所以目前我正在通过 BufferedReader 导入文件/FileReader ,将每一行添加到 ArrayList<String> 。看起来像:

     String line;

     ArrayList<String> thing = new ArrayList<String>();
     
     BufferedReader reader = new BufferedReader(new FileReader(
                "file.txt"));    
     
     while (true) {   
         line = reader.readLine();
            if (line == null) {
                break;
            }
            thing.add(line);
        }
        reader.close();

每个内容都会被解析为 String[] array在基本的 for 循环中。

       String[] array = new String[thing.size()];
       for(i=0;i<thing.size();i++) {
            array[i] = thing.get(i)
        }

这就是我到目前为止所得到的。

导入的数据格式如下:

Euro (EUR), 1.359, €

US Dollars (USD), 1.34, $

据我了解split以及类似于 \\s*,\\s* 的正则表达式可能会被用来将字符串分割成不同的组成部分,但据我所知为零。

问题:我如何进一步拆分字符串。

例如,将字符串的每个第一部分放入名为 currency 的数组中,将字符串的每个第二部分放入名为 factor 的数组中,如此等等。

最佳答案

您可以在 for 循环中使用 split(",") 将每个字符串拆分为另外三个部分,然后将它们添加到适当的数组中:

        List<String> thing = new ArrayList<>();
        thing.add("Euro (EUR), 1.359, €");

        String[] currency = new String[thing.size()];
        String[] factor = new String[thing.size()];
        String[] sign = new String[thing.size()];

        for(int i=0;i<thing.size();i++) {
            String parts[] = thing.get(i).split(",");
            currency[i] = parts[0];
            factor[i] =  parts[1];
            sign[i] =  parts[2];
        }

        System.out.println(currency[0] + " " + factor[0] + " " + sign[0]);

输出:

欧元 (EUR) 1.359 €

关于java - 解析文本文件的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135548/

相关文章:

java - Java算术表达式程序的类和构造函数设计

javascript - 通过 Selenium WebDriver 从 JavascriptExecutor 接口(interface)使用 executeScript 方法时,arguments[0] 和 arguments[1] 是什么意思?

python - 如何将 boolean 掩码存储为 Cython 类的属性?

java - 查找数组列表中的最小值

java - 在我的自定义 Listview Android ==> 空指针异常..?

java - 获取与 POJO 变量的最大值匹配的所有 POJO 项

Java 初学者 : does casting result in lower performance by any mean?

c++ - 从数组中删除前导零

c# - 如何在 C# 中将数组的一部分复制到另一个数组?

android - 将多个参数传递给 RecyclerView