【发布时间】:2021-05-15 09:44:57
【问题描述】:
我的代码运行良好,没有在命令中传递任何逗号。我不确定如何更改代码以处理命令中的逗号。
这就是我现在拥有的:
public static void main(String args[]) {
String key = args[0]; // key
int n = (int) Math.sqrt(args.length - 1);
String mat[][] = new String[n][n]; //matrix
int count = 1;
for (int r = 0; r < n; r++) {
for (int c = 0; c < n; c++){
if (count == args.length)
break;
mat[r][c] = args[count];
count++;
}
}
find_key(mat,n,key);
}
当我跑步时
java findKey 15 60 10 9 20 8 4 12 7 3
我的输出:未找到
java findKey 3 60 10 9 20 8 4 12 7 3
我的输出:位置:(3,3)
但是,程序必须接受多个命令行参数。第一个参数是要寻找的键,连续的参数是方阵的元素,行列,其中每一行用逗号分隔,无穷大用 I 缩写。 两个示例调用及其对应的矩阵是
Invocaiton 1:java findKey 15 60 10 9, 20 8 4, 12 7 3
Invocaiton 2:java findKey 71 I I 71 20, I I 60 17, 72 41 12 5, 27 5 4 3
对于第一次调用,键 = 15 并且 3×3 矩阵不包含该键,因此应该找不到输出。在第二次调用中,key=71 在 4×4 矩阵中,它确实包含 key,所以输出应该是 (1,3))。
【问题讨论】:
-
你想忽略逗号还是需要用它来检查输入?
-
我可能只想忽略逗号@Matt
-
为什么要在命令中插入逗号?也许像Commons CLI library(来自Apache)这样的东西是合适的?
标签: java string split comma args