为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过java获取txt的列内容

如何通过java获取txt的列内容

慕田峪7331174 2023-06-08 17:34:23
String pathname = "F:\\Calibration.txt";try (FileReader reader = new FileReader(pathname);    BufferedReader br = new BufferedReader(reader)) {        String line;        while ((line = br.readLine()) != null) {            String[] split = line.split(",");            System.out.println(split[0]);        }此代码可以获取第一列的内容,但列不固定。我想 - 按列数自动获取每列的数据不使用像这样的修复数字 split[fixNumber]27311,28841,30577,31583,026401,28046,30234,31255,5025495,27263,29891,30926,10024594,26494,29548,30597,15023696,25737,29206,30269,200这是 Calibration.txt 的内容预期输出:27311 26401 25495 24594 23696colmun 不固定,我不想使用 split[0] 或 (split[1] split[2]...)这是我的新代码:  List<String> list = new ArrayList();  String pathname = "F:\\Calibration.txt";  try (FileReader reader = new FileReader(pathname);    BufferedReader br = new BufferedReader(reader)) {        String line;        while ((line = br.readLine()) != null) {            list.add(line);       }       for(int i = 0; i < list.size(); i++) {           System.out.println(i);                for(String a : list){                    String[] regex = a.split(",");                    System.err.println(regex[i]);                }            }
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

假设您已经阅读了文件并将所有行存储在ArrayList您完成的文件中。


 List<String> list = new ArrayList();

  String pathname = "F:\\Calibration.txt";

  try (FileReader reader = new FileReader(pathname);

    BufferedReader br = new BufferedReader(reader)) 

{

        String line;

        while ((line = br.readLine()) != null) {

            list.add(line);

       }


 }

如果你的第一行是


27311,28841,30577,31583,0


然后在这一行中,第 1 列(或索引 0)的值为 27311,


第 2 列 =28841,


第 3 列 =30577 等等..


如果你想要第 nth(或 n-1 索引)行的第 ith(或 i-1 索引)列,你需要执行以下操作:


String row = list.get(n-1); //row n

String[] columns = row.split(",");//this gives you the columns

//Now access any column

String col1 = columns[0];

String colI = columns[i-1];

现在,根据您的预期输出,您需要所有行的第一列。因此,您需要迭代列表,拆分它们并获取第一列。


//iterate the list

for(String line : list){

    String[] columns = line.split(",");

    String col0 = columns[0];

    System.out.println("column 1 : "+col0);

}

如果您只想要每一行的第一列,另一种方法是使用正则表达式删除其他列和逗号。


//iterate the list

for(String line : list){

    String col0 = line.replaceFirst("\\s*,.*", "");

    System.out.println("column 1 : "+col0);

}

要打印所有列,您还需要遍历列数组,如下所示。


//iterate the list

    for(String line : list){

        String[] columns = line.split(",");

        for(int i =0; i<columns.length; i++)

             System.out.println("column "+ i +": "+columns[i]);

    }


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信