2015-02-09 3 views
-3

У меня есть строка для разбора в java. Моя строка ввода: #hello#[email protected]@[email protected]. Я ожидаю, что выход будет:Parse String без удаления токена

#hello 

#adam 

@how 

@are 

@you 

Я попытался с помощью следующего кода, но это не дает желаемых результатов.

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

Это (приблизительный) эскиз требования - это не вопрос. Если вопрос «как это сделать», это слишком широко для SO. Вы должны попробовать, и если при этом вам придет конкретный вопрос (как мне сделать этот один шаг, или «Я сделал X и ожидал A, но увидел B»), вы можете задать этот вопрос (если вы первый поиск, чтобы убедиться, что он еще не был дан ответ, конечно). – yshavit

+4

Вы пробовали какой-то код? Дайте нам это ... тогда мы можем помочь. –

+0

Да. .. Я добавил код. – Developer

ответ

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#[email protected]@[email protected]"; 

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