0


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

从一个字符串开始我尝试返回一个字符串[]等于

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 回答