【问题标题】:How To Parse Delimiter Comma Separated String For First 4 Values in Java如何在 Java 中解析前 4 个值的分隔符逗号分隔字符串
【发布时间】:2013-03-13 20:54:44
【问题描述】:

我目前正在尝试解析输出为1_3_5_1,1_3_7_1,1_4_9_1的字符串

我已经运行了一个 for 循环:

String[] row;
for(String value : selValues.split("\\,")){
            System.err.println("value to be deleted :: "+value);
            for(int i = 0; i <= 4; i++) {
                row = value.split("\\_");
                System.out.println("print row :: " + row[0]);
                System.out.println("print row :: " + row[1]);
                System.out.println("print row :: " + row[2]);

            }

我正在尝试捕获由“_”分隔的前 4 个。我正在寻找的是 row[] 是: row[1,3,5,1] row[1,3,7,1] row[1,4,9,1]

由于这些是我将在查询中发送到数据库的值。

现在,我的输出只是重复 1,3,5,1。

任何帮助将不胜感激。可能有更好的方法来做到这一点。谢谢!

解决方案

感谢大家的意见。我已经用它们把它清理干净了:

if(selValues != null && !selValues.trim().equals("")){
        for(String value : selValues.split(",")){
                row = value.split("_");
                try{
                //database call here
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
        }
    }

【问题讨论】:

  • 使用 String.split(","),不带两个反斜杠。

标签: java string parsing delimiter comma


【解决方案1】:

您必须从正则表达式中删除 \\

这将满足您的需求:

@Test
public void split2() {
    String input = "1_3_5_1,1_3_7_1,1_4_9_1";
    String[] csv = input.split(",");
    for(String v : csv) {
        String[] usv = v.split("_");
        System.out.print("[");
        for(int i = 0; i < usv.length; i++) {
            System.out.print(usv[i]);
            if(i < usv.length-1) {
                System.out.print(", ");
            }
        }
        System.out.println("]");
    }
}

输出是

[1, 3, 5, 1]
[1, 3, 7, 1]
[1, 4, 9, 1]

【讨论】:

  • @Cthulhu,嗯,是的,但这对他的输入没有用,他在问题中也没有提到。我不应该说you have to remove,而是you may remove,因为它在发布的代码中没有用
【解决方案2】:

你的内部 for-loop 是不必要的。其控制变量i 未使用。 否则,您的代码会给出正确的输出。

对于较大的逗号分隔列表,最好使用 csv 阅读器,而不是使用字符串。

输出: http://ideone.com/dzaIsh

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2021-11-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多