在不删除标记的情况下解析字符串

Parse String without removing the token

我有一个字符串要在 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());
    }

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

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

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());
        }
    }
}