请帮我解决这个问题,我试图解决这个问题,我已经坚持了几个小时。
问题:从文本文件中读取数据。数据文件的结构:
任务:我想编写一个Java程序来读取用户提供的数据文件,并将每个数据集存储在单独的数组中。我还希望将每个数组的大小显示为输出,然后按排序顺序显示相应的数据集(增加数字的顺序)。我想使用Arrays.sort(int[ ])
方法对每个数组进行排序。我已经把文件读完了。
任何帮助将不胜感激!!!我不认为我正在编写方法将它们放入数组并正确计算项目数。
以下是我如何处理此文件的代码。
while(inFile.hasNext()){
String line = inFile.nextLine();
String[] lineArray = line.split("\\s+");
list.add(line);
Arrays.sort(lineArray);
System.out.println("Total number of elements in array : " + lineArray.length );
String a = Arrays.toString(lineArray);
System.out.println(a.substring(1, a.length() - 1));
答案 0 :(得分:0)
您可以首先将整个文件读入List
Files.readAllLines(Path)
。然后,您需要将String[] lineArray
转换为int[]
。 Integer.parseInt(String)
将String
转换为int
。这可能看起来像
public static void main(String[] args) throws IOException {
String home = System.getProperty("user.home");
Path filePath = Paths.get(home, "file.txt");
List<String> lines = Files.readAllLines(filePath);
for (String line : lines) {
String[] lineArray = line.split("\\s+");
System.out.println("Total number of elements in array : "
+ lineArray.length);
int[] arr = new int[lineArray.length];
for (int i = 0; i < lineArray.length; i++) {
arr[i] = Integer.parseInt(lineArray[i]);
}
Arrays.sort(arr);
String a = Arrays.toString(arr);
System.out.println(a.substring(1, a.length() - 1));
}
}
答案 1 :(得分:0)
在 Java8 中,您可以使用 stream 来简化代码:
public static void main(String[] args) throws IOException {
Files.lines(Paths.get("./myinputFile.txt"))
.map(l -> Arrays.stream(l.split("\\s+")).map(Integer::parseInt))
.map(Stream::sorted)
.forEach(t -> {
t.forEach(v -> System.out.print(v + " "));
System.out.println();
});
}