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

文字列を分割する必要はありません。この目的には正規表現を使用することをお勧めします。検索でパターンを見つけます。

単なるアイデアとして、=and で始まり、最後にセミコロンがあるパターンを検索してみてください。{}

そして、パターンに一致するすべてのグループを見つけます。

例:

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 に答える