gpt4 book ai didi

java - 如何将文件中的数据分配给数组

转载 作者:行者123 更新时间:2023-12-01 19:36:08 26 4
gpt4 key购买 nike

我有一个文件,如下所示:

巴拉克·奥巴马 3
迈克尔· jackson 1
杜阿·利帕 2
...全部 15 行

我需要从文件中读取数据,并将名称放入一维数组中,将整数放入另一个数组中,然后对所有内容进行从小到大的排序。

我到处寻求帮助,我尝试用谷歌搜索并浏览了很多文章。我找不到答案。这就是我尝试过的,但我知道这是错误的。

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

public class Boombastic {

public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\bobo\\Documents\\NetBeansProjects\\" + "boombastic\\boombastic.txt");

String[] fullName;
Scanner sc = new Scanner(file);
while (sc.hasNext()) {
fullName[] = sc.next();
}
}
}

你能帮我解决这个问题吗?

最佳答案

使用scanner.nextLine()。另外,我建议使用ArrayList,因为你不知道扫描仪有多少行。如果这样做,那么您可以继续使用数组。

使用数组列表:

public class Boombastic {

public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\bobo\\Documents\\NetBeansProjects\\" + "boombastic\\boombastic.txt");

ArrayList<String> fullName = new ArrayList<>();
ArrayList<Integer> ints = new ArrayList<>();
Scanner sc = new Scanner(file);
Scanner sc2 = new Scanner(file); // For the integers.

while(sc.hasNext()) {
fullName.add(sc.nextLine());
ints.add(sc2.nextInt());
}
}
}

使用数组(假设扫描仪有 3 条线):

public class Boombastic {

public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\bobo\\Documents\\NetBeansProjects\\" + "boombastic\\boombastic.txt");

String[] fullName = new String[3];
int[] ints = new int[3];
Scanner sc = new Scanner(file);
Scanner sc2 = new Scanner(file);
int i = 0;
while (sc.hasNext()) {
fullName[i ++] = sc.next();
ints[i ++] = sc2.nextInt();
}
}

}

要对其进行排序,请执行以下操作

Arrays.sort(fullName);
Arrays.sort(ints);

这不是最有效的方法,因为它使用两个扫描仪,但它确实有效。

关于java - 如何将文件中的数据分配给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com