powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / String split
12 сообщений из 12, страница 1 из 1
String split
    #38545058
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли дробить строчку split-ом не по одному параметру, а по N

Код: java
1.
<per.name>test <go xml <per.street>else per.country> spring



Надо разбить по "<", ">", " "

На выходе массив
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
<per.name>
test
<go
xml
<per.street>
else
per.country>
spring



Порядок значения не имеет
...
Рейтинг: 0 / 0
String split
    #38545096
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если прочитать документацию к методу, то можно обнаружить, что split использует регулярное выражение, а не просто сепаратор.
http://stackoverflow.com/a/7492681
...
Рейтинг: 0 / 0
String split
    #38545115
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я понимаю, что регулярку и проблема в ней
Использую
Код: java
1.
"<|>| 

"

< > не входят в слова

Можно ли в моем случае, чтоб по пробелу так и резалось, а символы < и > оставались в словах?

Или свой парсер писать?
...
Рейтинг: 0 / 0
String split
    #38545124
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Можно ли в моем случае, чтоб по пробелу так и резалось, а символы < и > оставались в словах?

Не думаю. А зачем?

-=Koba=-Или свой парсер писать?
StringTokenizer?
...
Рейтинг: 0 / 0
String split
    #38545130
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНе думаю. А зачем?

Ой, что-то я гоню. Можно же lookahead/lookbehind попробовать. Чтобы символ попадал в слово, а граница считалась уже до или после.
...
Рейтинг: 0 / 0
String split
    #38545663
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Надо разбить по "<", ">", " "
Код: java
1.
split("[\\<\\>\\s]+")
...
Рейтинг: 0 / 0
String split
    #38545675
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman,

Ему надо чтобы скобки остались в результатах, а пробелы - нет.
...
Рейтинг: 0 / 0
String split
    #38545679
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-=Koba=-Или свой парсер писать?
я б свой парсер написал
...
Рейтинг: 0 / 0
String split
    #38545681
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Сорри за невнимательность!
...
Рейтинг: 0 / 0
String split
    #38545685
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-,

Код: java
1.
2.
3.
4.
String input = "<per.name>test <go xml <per.street>else per.country> spring";
for (String token: input.replace("<", " <").replace(">", "> ").split("\\s+")) {
    System.out.println(token);
}
...
Рейтинг: 0 / 0
String split
    #38545693
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через positive lookbehind и lookahead, впринципе, что-то похожее
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class Test{
    public static void main(String[] args){
        String[] res = "<per.name>test <go xml <per.street>else per.country> spring".split("\\s|(?=\\<)|(?<=\\>)");
        for(String s : res){
            System.out.println("[" + s + "]");
        }
    }
}



[]
[<per.name>]
[test]
[]
[<go]
[xml]
[]
[<per.street>]
[else]
[per.country>]
[spring]



Но пустые строки надо скипать потом
...
Рейтинг: 0 / 0
String split
    #38545714
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
// многа букаф...
String[] array = "<per.name>test <go xml <per.street>else per.country> spring".split("\\s");
for(int i=0; i<array.length; i++) array[i] = array[i].replace(">", "> ").replace("<", " <");
for(int i=0; i<array.length; i++) {
	String[] arr = array[i].split("\\s");
	for(int y=0; y<arr.length; y++) if(!arr[y].isEmpty()) System.out.println(arr[y]);
}
}

автор<per.name>
test
<go
xml
<per.street>
else
per.country>
spring
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / String split
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]