gpt4 book ai didi

java:如何使用 .txt 中的数据创建多个数组

转载 作者:行者123 更新时间:2023-11-30 07:51:23 24 4
gpt4 key购买 nike

所以这是我必须编写的第一个真正的java程序。我对 java 也很陌生..

该程序必须使用 2 个命令行参数运行,这些参数被假定为 x 和 y 坐标,然后确定坐标所在的市和县。为此,我想使用“绕数”。

但是在开始程序的这些部分之前,我首先需要创建并填充不同的数组,对吗?

.txt 文件包含以下内容:(顺便说一句,所有地点和坐标均位于荷兰)县市身份证号码。例如:

0 格罗宁根哈伦

1 格罗宁根韭菜

等等,前 518 行。接下来的 61650 行左右的坐标如下所示:

0 6.665039 53.181004

0 6.666431 53.180642

其中第一个整数(此处为 0)对应于市政府

回到问题。文本文件无法更改,我必须像在 cmd 中一样使用重定向(?):java 'programname' < filename.txt。它应该读取整个文件,创建 1 个仅包含 id 数字的数组,这些数字都是整数。一个包含县的数组和一个包含市的数组,对吗?但是当数据位于同一行时,如何创建 3 个不同的数组( oke 2、1 个整数数组和 2 个字符串数组)..

我想使用 StdIn.readInt、StdIn.readString 和 StdIn.readLine,但我就是无法让它工作。

预先感谢您的帮助。

这是我到目前为止所得到的,它给出了错误,因为(我认为是因为这个)它期望读取一个整数,但同一行上也有字符串..

public class test{

public static void main(String[] args){


int n = 519;
Integer[] a = new Integer[n];
for(int i = 0; i < n; i++){
a[i] = StdIn.readInt();
StdOut.println(a[i]);
}
}
}

最佳答案

由于不同的条目是按行分隔的,因此读取完整的行,然后在空格字符处将其拆分,然后将第一个转换为 int 并将其分配给 int 数组,将另外两个分配给字符串数组:

String line = StdIn.readLine();
String[] split = line.split(" ");
intArray[X] = Integer.parseInt(split[0]);
stringArray1[X] = split[1];
stringArray2[X] = split[2];

您可以循环执行此操作。

读取类似 java -jar your.jar < inputFile.txt 的文件您需要将阅读器的输入流设置为 System.in ,关于如何做到这一点(或者 StdIn 是否为您做到这一点),如果不知道 StdIn 的来源,我无法判断。 .

<小时/>

编辑

当我正确理解你的意思时,那么你不需要做任何事情,StdIn使用 System.in 自动初始化自身.

这意味着StdIn.readLine()将返回输入文件的第一行。您可以使用以下命令读取文件的每一行:

while (StdIn.hasNextLine())
{
String line = StdIn.readLine();
// stuff from above
}

要从命令行参数获取 x 和 y,您需要访问 String[] args主方法的参数:

int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);

请注意,我在这里编写的所有代码都不会检查可能发生的任何异常(例如,如果您不输入两个整数)。我想这取决于你的任务(如果它说你可以假设正确的输入,上面的代码应该没问题)。

然后你可以像这样执行你的java程序:java -jar your.jar 100 20 < inputFile.txt 。其中 100 是 x 的值,20 是 y 的值,inputFile.txt 是包含位置数据的文件。

关于java:如何使用 .txt 中的数据创建多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304034/

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