2

我有一个来自数据库的字符串。字符串是这样的: -

ABC:def,ghi:jkl,hfh:fhgh,ahf:jasg

简而言之String:String,它会重复较大的值。

我需要解析此字符串以仅获取没有任何:或的单词,并将每个单词存储在 ArrayList

我可以使用拆分函数(两次)来做到这一点,但我发现使用正则表达式我可以一次性完成并获取数组列表..

String strLine="category:hello,good:bye,wel:come";
        Pattern titlePattern = Pattern.compile("[a-z]");
        Matcher titleMatcher = titlePattern.matcher(strLine);
        int i=0;
        while(titleMatcher.find())
        {
            i=titleMatcher.start();
            System.out.println(strLine.charAt(i));  
        }

但是它并没有给我正确的结果..它最终给了我找到的匹配索引,然后我需要附加它,这不太合乎逻辑和效率。

有什么办法吗。。

4

3 回答 3

5
String strLine="category:hello,good:bye,wel:come";
String a[] = strLine.split("[,:]");
for(String s :a)
    System.out.println(s);
于 2012-04-06T06:03:26.757 回答
1

使用 java StringTokenizer 示例:

StringTokenizer st = new StringTokenizer(in, ":,"); 
while(st.hasMoreTokens()) 
  System.out.println(st.nextToken()); 
于 2012-04-06T06:06:32.147 回答
0

即使您可以使用正则表达式一次解析整个字符串,我认为它的可读性也不如通过多个步骤拆分它。

于 2012-04-06T06:03:24.067 回答