Как бы я разделить строку ниже на ее части. То, что мне нужно отделить, - это каждый , включая угловые скобки, от остальной части строки. Таким образом, в приведенном ниже случае я получу несколько строк 1. «Я должен расстаться с вами, потому что» 2. «<причина>» (без пробелов) 3. «. Но давайте все же« 4. »<отказ от ответственности> "5.". "
I have to break up with you because <reason> . But let's still <disclaimer> .
ниже - это то, что у меня сейчас есть (уродливо ...)
boolean complete = false;
int begin = 0;
int end = 0;
while (complete == false) {
if (s.charAt(end) == '<'){
stack.add(new Terminal(s.substring(begin, end)));
begin = end;
} else if (s.charAt(end) == '>') {
stack.add(new NonTerminal(s.substring(begin, end)));
begin = end;
end++;
} else if (end == s.length()){
if (isTerminal(getSubstring(s, begin, end))){
stack.add(new Terminal(s.substring(begin, end)));
} else {
stack.add(new NonTerminal(s.substring(begin, end)));
}
complete = true;
}
end++;