Java 从文本文件导入数据的干净方法?

Java 从文本文件导入数据的干净方法?,java,text,Java,Text,我有一个包含以下内容的文本文件: 名称1:0 | 0 | 0 | 0 | 0 | 名称2:0 | 0 | 0 | 0 | 0 | ... 等 我正在将名称导入字符串数组中 这很好,但是我想不出一个干净的方法将数字与数组项关联起来。数字由“管道”字符“|”分隔 理想情况下,我希望调用一个方法,该方法在给定名称时返回一个整数数组,即类似于public int[]getScores(String name)Use 首先使用:拆分一行,然后使用|将每个数字拆分为一个字符串。最后使用Integer.Par

我有一个包含以下内容的文本文件:

名称1:0 | 0 | 0 | 0 | 0 |
名称2:0 | 0 | 0 | 0 | 0 |
... 等

我正在将名称导入字符串数组中

这很好,但是我想不出一个干净的方法将数字与数组项关联起来。数字由“管道”字符“|”分隔

理想情况下,我希望调用一个方法,该方法在给定名称时返回一个整数数组,即类似于
public int[]getScores(String name)
Use

首先使用
拆分一行,然后使用
|
将每个数字拆分为一个字符串。最后使用Integer.Parse获得数字

使用

首先使用
拆分一行,然后使用
|
将每个数字拆分为一个字符串。最后使用Integer.Parse获得数字

也可以这样做(从Java 1.5开始)。它的优点是可以使用正则表达式实现某种类型的自动类型转换

来自javadoc的示例

String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close(); 
此外,如果您的目标是按名称恢复数字,请使用某种哈希表来存储它,以便更快地检索。

也可以这样做(因为Java 1.5)。它的优点是可以使用正则表达式实现某种类型的自动类型转换

来自javadoc的示例

String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close(); 

另外,如果您的目标是按名称恢复数字,请使用某种哈希表来存储它,以便更快地检索。

Yes-以名称为键的哈希表,以整数数组为值。Yes-以名称为键的哈希表,以整数数组为值。我最后使用了此数组和2D数组的组合。。。谢谢最有可能的情况是,使用HashMap比使用2D数组更好。这应该可以得到上面描述的“理想”方法调用。我最终使用了这个和2D数组的组合。。。谢谢最有可能的情况是,使用HashMap比使用2D数组更好。这将使您获得上面描述的“理想”方法调用。