我正在寻找一种方法来实现以下问题。
从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!
答案 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]