0


次の問題を実現する方法を探しています。

String a から始めて String[] equals を返そうとします

new String[]{Q},{ec.Qh},{ec.Q2}

誰にも提案はありますか?

ここのところ:

    String a="Q={{ec.Qh}{ec.Q2}}";

    int index_first = a.indexOf("="); 
    String name= a.substring(0,index_first); 
    String temp=a.substring(index_first+1, a.length());
    temp=temp.replaceAll("\\{\\{","");
    temp=temp.replaceAll("\\}\\{","\\,");
    temp=temp.replaceAll("\\}\\}","");
    String[] synonyms=temp.split(",");

    //for(int i =0;i<synonyms.length;i++){System.out.println(synonyms[i]);}

    String[] result=new String[]{name,synonyms} // does not work! 
4

2 に答える 2

3

次のように StringTokenizer を使用できます。

new StringTokenizer(string, "{}")

StringTokenizer は指定された文字 (}および{) で分割され、これらは返されないことに注意してください。を使用してトークナイザーの結果を繰り返し処理し、結果をnextToken()に追加する必要がありList<String>ます。

シンプルであるため、ここでは便利ですが、ドキュメンテーションStringTokenizerはレガシー クラスであると記載されているため、慎重に使用する必要があります。

于 2012-11-05T09:09:23.707 に答える
2

使用できます

String s = "Q={{ec.Qh}{ec.Q2}}";
String[] parts = s.split("(=\\{\\{|}\\{|}})");
System.out.println(Arrays.toString(parts));

版画

[Q, ec.Qh, ec.Q2]
于 2012-11-05T09:12:43.373 に答える