用Java分割文本

时间:2017-04-28 19:52:29

标签: java split

输入文字:

inptext = "inp1(A, Var1), inp1(B,Var1)"

预期产出:

optext = "inp1(A, Var1)", "inp1(B,Var1)"

代码:

String [] splitText = inptext.split(", ");
for (String obj:splitText )
{
   System.out.println(obj);
}

当前输出:

inp1(A
Var1)
.
.

解释当前输出:

optext = "inp1(A", "Var1)"

请建议我纠正此事。

4 个答案:

答案 0 :(得分:2)

您可以使用KFold(shuffle = True)前瞻来实现这一目标,例如:

Regex

答案 1 :(得分:1)

如果输入“喜欢inp1”中的逗号后面有空格,可以使用:

String inptext = "inp1(A, Var1), inp1(B,Var1)";
        String[] tmp = inptext.split("\\), ");
        for (String a : tmp) {
            if (!a.substring(a.length()-1).equals(")"))
                a += ")";
            System.out.println(a);

        }

答案 2 :(得分:0)

您可以合并String#substringString#indexOf来检索所需的数据。

String inptext = "inp1(A, Var1), inp1(B,Var1)";
String[] tokens = inptext.split("(?<=\\)),\\s");
for(String token : tokens){
    System.out.println(token);
}

答案 3 :(得分:0)

您可以使用不在,之间的()进行拆分,以便使用此正则表达式,(?![^(]*\))

String inptext = "inp1(A, Var1), inp1(B,Var1)";
String spl[] = inptext.split(",(?![^(]*\\))");

<强>输出

[inp1(A, Var1),  inp1(B,Var1)]