Учитывая следующую строку:Split String - декартов способ
"foo bar-baz-zzz"
Я хочу, чтобы разделить его на персонажах «» и «-», сохраняя свою ценность, но получить все комбинации входов.
я хочу, чтобы получить двумерный массив, содержащий
{{"foo", "bar", "baz", "zzz"}
,{"foo bar", "baz", "zzz"}
,{"foo", "bar-baz", "zzz"}
,{"foo bar-baz", "zzz"}
,{"foo", "bar", "baz-zzz"}
,{"foo bar", "baz-zzz"}
,{"foo", "bar-baz-zzz"}
,{"foo bar-baz-zzz"}}
Есть ли встроенный метод в Java, чтобы разбить строку таким образом? Может быть, в библиотеке, подобной Apache? Или мне нужно написать стену для петель?
Это лучший ответ, просто разделив с помощью "-" не будет работать. –
вы можете избежать некоторых неприятных случаев угловых, изменив первые строки: если (поз == str.length()) { \t \t \t если (sb.length()> 0) { \t \t \t \t currentResult .add (sb.toString()); \t \t \t \t результатыSoFar.add (currentResult); \t \t \t} –
@Andreas: Это угловой корпус? Если строка заканчивается разделителем, я не был уверен, должен ли результат включать пустую строку в качестве возможного токена или нет. – Adamski