Split-string java返回值

时间:2012-11-05 09:05:13

标签: java arrays string split


我正在寻找一种方法来实现以下问题。

从String开始,我尝试返回String []等于

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! 

2 个答案:

答案 0 :(得分:3)

您可以使用StringTokenizer:

new StringTokenizer(string, "{}")

请注意,StringTokenizer会对指定的字符(}{)进行拆分,不会返回这些字符。您应该使用nextToken()遍历标记生成器结果,并将结果添加到List<String>

这里很有用,因为它很简单但documentation注意StringTokenizer是遗留类,所以你应谨慎使用。

答案 1 :(得分:2)

您可以使用

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

打印

[Q, ec.Qh, ec.Q2]