如何处理 java 中的 String args[] 中的逗号

how to deal with the comma in String args[] in java

我的代码运行良好,没有在命令中传递任何逗号。我不确定如何更改我的代码来处理命令中的逗号。

这就是我现在拥有的:

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 查找键 15 60 10 9 20 8 4 12 7 3

我的输出:未找到

java 查找键 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 矩阵不包含该键,因此应该找不到输出。第二次调用时,4×4矩阵中key=71,确实包含key,所以输出应该是(1,3)).

根据您的评论,您想忽略逗号。在这种情况下,您可以在将值分配给 mat.

的元素时将其从参数中删除
mat[r][c] = args[count].replace(",", "")

一些背景信息:args[] 表示的字符串被空格分隔,因此数组的结果元素如下所示:

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 15| 60| 10| 9,| 20|  8| 4,| 12|  7|  3|

因此,逗号是该行最后一个元素的一部分,可以简单地删除。