java中如何处理String args[]中的逗号
Posted
技术标签:
【中文标题】java中如何处理String args[]中的逗号【英文标题】:how to deal with the comma in String args[] in java 【发布时间】: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)这样的东西是合适的? 【参考方案1】:根据您的评论,您想忽略逗号。在这种情况下,您可以在将值分配给 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|
因此,逗号是行的最后一个元素的一部分,可以简单地删除。
【讨论】:
以上是关于java中如何处理String args[]中的逗号的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot.09.SpringBoot中如何处理Filter抛出的异常