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

所以这是我要编写的第一个真正的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,您需要从main方法访问String[] args参数:

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

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

然后,您可以执行以下java程序: java -jar your.jar 100 20 < inputFile.txt 。 其中100是x的值,20是y的值,inputFile.txt是带有位置数据的文件。