当前位置: 首页 > 面试题库 >

使用Java从文本文件中逐列提取数据

孟浩然
2023-03-14
问题内容

我在Java下工作,想根据文本文件中的列提取数据。
“ myfile.txt”内容:

    ID     SALARY RANK  
    065    12000   1
    023    15000   2
    035    25000   3
    076    40000   4

我想根据任何列分别提取数据,即ID,SALARY,RANK等。
基本上,我想根据列对单个数据执行操作。

我通过使用while循环并逐行读取列出了“ myfile.txt”中的数据:

    while((line = b.readLine()) != null) {
          stringBuff.append(line + "\n");
       }

链接:将文本文件中的选择性列数据读入Java列表中

在bove链接下,使用以下代码编写:String [] columns = line.split(“”);

但是如何正确使用它,请提供任何提示或帮助?


问题答案:

您可以使用正则表达式来检测更长的空格,例如:

String text = "ID     SALARY RANK\n" +  
            "065    12000   1\n" +
            "023    15000   2\n" +
            "035    25000   3\n" +
            "076    40000   4\n";

Scanner scanner = new Scanner(text);

//reading the first line, always have header
//I suppose
String nextLine = scanner.nextLine();
//regex to break on any ammount of spaces
String regex = "(\\s)+";


String[] header = nextLine.split(regex);

//this is printing all columns, you can 
//access each column from row using the array
//indexes, example header[0], header[1], header[2]...
System.out.println(Arrays.toString(header));

//reading the rows
while (scanner.hasNext()) {
    String[] row = scanner.nextLine().split(regex);

    //this is printing all columns, you can 
    //access each column from row using the array
    //indexes, example row[0], row[1], row[2]...
    System.out.println(Arrays.toString(row));
    System.out.println(row[0]);//first column (ID)
}


 类似资料:
  • 问题内容: 我需要使用iText从pdf文件中提取文本。 问题是:一些pdf文件包含2列,当我提取文本时,我得到一个文本文件,其中的列作为结果合并(即同一行中两列的文本) 这是代码: 你能帮我完成这个任务吗? 问题答案: 我是iText文本提取子系统的作者。您需要做的是开发自己的文本提取策略(如果您看一下如何实现的话,就会发现您可以提供可插拔的策略)。 您将如何确定列的开始和停止位置完全取决于您-

  • 问题内容: 我想使用Python从HTML文件中提取文本。如果要从浏览器复制文本并将其粘贴到记事本中,我希望得到的输出基本上相同。 我想要比使用正则表达式更强大的功能,而正则表达式可能在格式不正确的HTML上失败。我见过很多人推荐美丽汤,但是使用它时遇到了一些问题。例如,它拾取了不需要的文本,例如JavaScript源。此外,它没有解释HTML实体。例如,我希望' 在HTML源代码中转换为

  • 我有一个列表。pdf,ppt,pptx,xls,xlsx,doc和。docx文件,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中智能地提取计划文本。目前我正在使用Apache POI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的位置来做这件事?也许还可以处理。ODT、.ODP、.ODS文件?如何从。pdf,ppt,pptx,xls,xlsx,doc和.docx文件

  • 问题内容: 我需要使用Java逐行读取大约5-6 GB的大型文本文件。 我如何快速做到这一点? 问题答案: 常见的模式是使用 如果你假设没有字符编码,则可以更快地读取数据。例如ASCII-7,但差别不大。你处理数据的时间很可能会花费更长的时间。 一种不太常用的模式,可以避免line泄漏的范围。 在Java 8中,你可以执行

  • 我需要从大文件中提取文本(最大限制50MB)文件可能是doc、ppt、xls、txt或pdf格式。到目前为止,我使用了ApachePOI'http://poi.apache.org/' 用于Microsoft Office文档和PDFBox从PDF中提取文本。然而,随着文件变大,提取过程变得缓慢,特别是以下文件。到目前为止我取得的成果: 1. PPTX-45MB-3分钟apx 2.PDF-62MB

  • 问题内容: 我正在使用ADFA- LD数据集进行基于主机的入侵检测项目,现在正在进行特征提取模块。我构建了由长度为4的系统调用短语组成的短语词典。现在,为了进行特征提取,我需要将这些短语与新的系统调用轨迹进行比较(以下是一些示例): 。 我需要的是,如何将这些短语与新痕迹进行比较。我在用Java做。 我的短语字典: sys_socketcall-sys_poll-sys_clock_gettime