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是带有位置数据的文件。