我对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/