关于ZAKER 融媒体解决方案 合作 加入

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

CocoaChina 10-12

所以这是我必须编写的第一个真正的Java程序 .

我对Java也相当陌生 .

该程序必须使用 2 个命令行参数 ( 假定是 x 和 y 坐标 ) 运行 , 然后确定坐标位于哪个市和县 . 为此 , 我想使用一个 " 卷号 ".

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

.txt 文件包含以下内容: ( 所有地点和坐标都在荷兰顺便说一句 )

县市的身份证号码 .

例如:

0 格罗宁根哈伦

1 格罗宁根韭菜

对于前 518 行 , 等等 . 接下来的 61650 行是这样的坐标:

0 6.665039 53.181004

0 6.666431 53.180642

第一个整数 ( 此处为 0 ) 与所在城市相对应

回到问题 . 文本文件无法更改 , 我必须像在 cmd 中那样使用 redirection ( ? ) :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

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 ] ) ;

请注意 , 我在此处编写的所有代码都不会检查可能发生的任何异常 ( 例如 , 如果您不输入两个 int ) . 我猜这取决于您的任务 ( 如果它说您可以假定正确的输入 , 则上面的代码应该可以 ) .

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

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享