3

我正在尝试拆分字符串

String strLine="sadf={asdf;=};asdfa ={sfasdf} as}; asdfa ={sfasdf};";

在这样的输出应该是这样的

   ={asdf;=};
   ={sfasdf} as};
   ={sfasdf};

我试过这段代码

String str1=strLine.substring((strLine.indexOf("=")),strLine.indexOf(";")+1);
        strLine=strLine.substring((strLine.indexOf(";")+1));

但我没有得到我想要的结果..

4

4 回答 4

4

可能不是最优雅的方法,但它可以满足您的需要:

    String[] st = strLine.split("};");
    for (String s : st) {
        System.out.println(s.substring(s.indexOf("=")) + "};");
    }
于 2012-11-14T10:08:25.750 回答
1

尝试这个:

int i1 = strLine.indexOf("=");
int i2 = strLine.indexOf("};", i1);
String s = strLine.substring(i1, i2 + 2);
于 2012-11-14T10:08:07.007 回答
0

您不需要拆分字符串。我建议您为此目的使用正则表达式。在搜索中找到模式。

只是一个想法,尝试搜索模式以=和开头{}最后是分号。

并找到与模式匹配的所有组。

例子:

Regular Expression = ".*(=\{.*\}.*;)*.*"
于 2012-11-14T10:08:28.663 回答
0
        String strLine="sadf={asdf;=};asdfa ={sfasdf} as}; asdfa ={sfasdf};";

        String[] s=strLine.split("};");
        String str1=s[0]+"};";
        String str2=s[1]+"};";
        String str3=s[2]+"};";
        System.out.println(str1+" "+str2+" "+str3);
于 2012-11-14T10:09:40.777 回答