解析字符串而不删除令牌

时间:2015-02-09 18:18:53

标签: java regex parsing delimiter

我有一个要在java中解析的字符串。我的输入字符串是:#hello#adam@how@are@you。 我希望输出为:

#hello

#adam

@how

@are

@you

我尝试使用以下代码,但它没有提供所需的输出。

 StringTokenizer st = new StringTokenizer(txt,"#,");
    ArrayList<String> str =new ArrayList<String>();
    while (st.hasMoreElements()) {
        str.add(st.nextElement().toString());
    }

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式轻松解决此问题。

仅考虑您提供的信息,这可能是一种可能的解决方案。

public class Parsing {
    public static void main (final String[] args) {

        final String regexp = "([@#][a-z]+)";
        final Pattern pattern = Pattern.compile(regexp);
        final String input = "#hello#adam@how@are@you";

        final Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}