Java 扫描器从输入文件中分离数据

标签 java

我对java有点陌生,现在我有点困惑。我试图从文件中获取一些输入数据,并对其进行解析/并为其提供正确的字段。例如,我的“in.txt”

Number: 2 Gender: 1 City: 4 Car: 7       
Gender: 1 City: 4 Number: 1                                                                                 
City: 2 Car: 1 Number: 3

我正在尝试到达 Number 等于 2、Gender 等于 1、City 等于 4 等位置。到目前为止,我可以使用 java 的 Scanner 来读取该文件,所以我知道它读取正确。那么我如何才能将名称与数字(例如(数字:2))相对应。每当看到“:”时我应该分割该行吗?比如给它一个左边和一个右边,或者这会弄乱“性别:1 城市:4 ...”的其余部分?当我输入此内容时,我正在尝试不同的事情,但我只是陷入了如何将数据与文件分离的困境。我非常感谢任何帮助。谢谢。这是我用来获取文件的扫描仪文件。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class example{
  public static void main(String[] args) throws FileNotFoundException{
    File inFile = new File("in.txt");
    Scanner input = new Scanner(inFile);
    while(input.hasNext()){
        String line = input.nextLine();
        System.out.println(line);
    }   
  }
}

最佳答案

如果您的文件或行始终按照您所描述的方式构建,您可以拆分空格并在数组中搜索所需的值,例如“Number:”(如有必要,您可以删除“:”),然后在数组中的这个位置+ 1处观察,就会有值。

分割“:”最终会得到这样的数组:

{[Number],[ 2 Gender],[ 1 City],[ 4 Car],[ 7]}

所以我认为这不是最好的解决方案。

关于Java 扫描器从输入文件中分离数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354312/

相关文章:

java - 防止 KeyListener 中的字符添加到字符串中

java - Java中如何传递泛型类型的Class变量?

java - 在 SWT FileDialog 中设置初始目录

java - 如何从 javascript 调用 WebStart 部署的小程序功能?

java - 为什么要启动 conhost.exe?

java - 传递对象引用,未获得预期结果。

java - 在 Java 中对 Web-http 响应进行数字签名(使用 pgp)

java - SparkSQL 并在 Java 中的 DataFrame 上爆炸

java - 数据库连接?

java - 如何将 GUI 对象放置在 GridBagLayout 内单元格内的特定 x/y 位置