gpt4 book ai didi

java - 解析文件中的信息

转载 作者:行者123 更新时间:2023-11-30 06:47:30 25 4
gpt4 key购买 nike

我正在尝试从文件中读取信息,以便使用 Java 创建图表。我有下面的代码,但是运行后输出为空。

该文件提供类似于以下的信息

3

Kentucky Florida Alabama

...

...

其中 3 是图中的顶点数量,下一行中的 3 个位置就是这些顶点。我正在努力找出导致空输出的原因。

public class ReadGraph {
static int vertNum = 0;
static String[] output;

public static String[] readVertices(Scanner fileIn) throws FileNotFoundException {
fileIn = new Scanner(new File("input.txt"));
vertNum = fileIn.nextInt();
output = new String[vertNum];
for (int i = 0; i < vertNum - 1; i++) {
output[i] = fileIn.next();
}
Arrays.sort(output);
fileIn.close();
return output;
}
}

此时输出应该是按字母顺序排列的位置列表。任何帮助将不胜感激。

最佳答案

fileIn对象读取第一行时,它找到了数字3,使用这个值你可以初始化output数组,在循环中您要减去 1 (vertNum - 1),因此当 Arrays 尝试排序时,它没有找到完整的数组,只有 2 个元素,因此它会抛出异常(exception)。为了避免这种异常,您不应在循环中减去一个元素,例如:

for (int i = 0; i < vertNum; i++) {
output[i] = fileIn.next();
}

更新:完整示例:

public class ReadGraph {
static int vertNum = 0;
static String[] output;

public static void main(String[] args) throws FileNotFoundException {
Scanner fileIn = null;
for (String s : readVertices(fileIn)) {
System.out.println(s);
}
}

public static String[] readVertices(Scanner fileIn) throws FileNotFoundException {
fileIn = new Scanner(new File("input.txt"));
vertNum = fileIn.nextInt();
output = new String[vertNum];
for (int i = 0; i < vertNum; i++) {
output[i] = fileIn.next();
}
Arrays.sort(output);
fileIn.close();
return output;
}
}

输出:

Alabama
Florida
Kentucky

关于java - 解析文件中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443486/

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