当前位置: 首页 > 知识库问答 >
问题:

java中字符串args[]中逗号的处理

鲁光霁
2023-03-14

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

这就是我现在拥有的:

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

    
}

当我跑的时候

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

共有1个答案

澹台景山
2023-03-14

根据您的注释,您希望忽略逗号。在这种情况下,在为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|

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

 类似资料:
  • 我有一根下面这样的弦- value1,value2,value3,value4,“value5,1234”,value6,value7,“value8”,value9,“value10,123.23”

  • 问题内容: 我有一个模糊的字符串,像这样: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。(编辑:我想我的意思是那些已经属于JDK或已经属于诸如Apache Commons之类的常用库的库。) 上面的字符串应分为: 注意:这不是CSV文件,它是文件中包含的单个字符串,具有较大的整体

  • 问题内容: 我有这样一个字符串: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。 上面的字符串应分为: 问题答案: 可以使用正则表达式 输出:

  • 问题内容: 我有一个像这样的字符串: 上面的字符串应分为: 问题答案: 我认为最简单的解决方案是处理输入字符串char-by-char: 例: 作为免费赠品,此解决方案还根据需要计算嵌套括号: 它还检查括号是否平衡(每个开放的括号都有相应的结束符)。

  • 问题内容: 我从数据库中得到了String,它有多个逗号()。我想删除 最后一个逗号, 但实际上找不到一种简单的方法。 我有的: 我想要的是: 问题答案: 要删除紧随字符串结尾的部分,您可以执行以下操作: 相对于/ solution,它需要对此类情况进行特殊处理,这可以优雅地处理空列表(空字符串)。 示例代码: 注意: 由于存在有关零件的一些注释和建议的编辑:表达式应与要删除的尾部零件匹配。 如果

  • 问题内容: 我有一个像下面的字符串- 值1,值2,值3,值4,“值5、1234”,值6,值7,“值8”,值9,“值10、123.23” 如果我在字符串上方标记化,则会得到逗号分隔的标记。但是我想说的是,字符串令牌生成器在进行拆分时会忽略双引号后的逗号。我怎么说呢 提前致谢 沙市 问题答案: 使用像OpenCSV这样的CSV解析器来自动处理带引号的元素中的逗号,跨多行的值等。您也可以使用该库将文本序