powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа со строками
25 сообщений из 29, страница 1 из 2
Работа со строками
    #34129560
трям-трям
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может у кого есть готовый метод, который на вход получает
строку и символ разделителя, а на выходе формирует массив строк?
...
Рейтинг: 0 / 0
Работа со строками
    #34129641
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите JavaDoc. Конкретно класс String. Не странно ли?
...
Рейтинг: 0 / 0
Работа со строками
    #34129686
oleg555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
юзай String.split("разделитель")
...
Рейтинг: 0 / 0
Работа со строками
    #34129746
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эх.. взяли и испортили человеку все.. Так он бы попутно узнал:
1. Есть такая штука, как JavaDoc.
2. Посмотрел примерно как она выглядит.
3. Пока искал класс String, узнал бы.. что в Java много пакетов.
4. Нашел бы класс, пока листал бы методы, еще бы пару запомнил, с пятерку отложилось бы.. "а вроде такое там есть".
Выгода очевидно!
...
Рейтинг: 0 / 0
Работа со строками
    #34129793
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подходит? :)

Код: plaintext
String.split("\\s+")
...
Рейтинг: 0 / 0
Работа со строками
    #34130548
oleg555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysterio
не подумал о такой пользе-((((
виноват-))))
...
Рейтинг: 0 / 0
Работа со строками
    #34136848
грузин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А tokinzer (я не помню как этот класс, но он в тандарте идет) не подойдет?
...
Рейтинг: 0 / 0
Работа со строками
    #34137067
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
грузинА tokinzer (я не помню как этот класс, но он в тандарте идет) не подойдет?
Пойдет, но зачем? Для того, чтобы массив строк сделать, там придется в цикле обход делать, а так - split и все дела.
...
Рейтинг: 0 / 0
Работа со строками
    #34137149
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackWallНе подходит? :)

Код: plaintext
String.split("\\s+")

чем не подходит то?
...
Рейтинг: 0 / 0
Работа со строками
    #34142352
Клерик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще на всякий случай
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 String s  = "[Строка], которую мы хотим разобрать на слова";
    StringTokenizer st =  new  StringTokenizer(s," [");

     while (st.hasMoreElements()){
      System.out.println(st.nextToken());
    }

...
Рейтинг: 0 / 0
Работа со строками
    #34142870
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший грузинА tokinzer (я не помню как этот класс, но он в тандарте идет) не подойдет?
Пойдет, но зачем? Для того, чтобы массив строк сделать, там придется в цикле обход делать, а так - split и все дела.

а знаете ли Вы, что метод split() работает в 2 раза медленнее чем если бы разбиение осуществлялось через StringTokenizer? так что выбирать есть из чего.
...
Рейтинг: 0 / 0
Работа со строками
    #34143396
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage Зашедший грузинА tokinzer (я не помню как этот класс, но он в тандарте идет) не подойдет?
Пойдет, но зачем? Для того, чтобы массив строк сделать, там придется в цикле обход делать, а так - split и все дела.

а знаете ли Вы, что метод split() работает в 2 раза медленнее чем если бы разбиение осуществлялось через StringTokenizer? так что выбирать есть из чего.
а так быстрее?
Код: plaintext
1.
2.
3.
4.
5.
6.
String simpleString = "Простая строка с разделителями";
        
Pattern pattern = Pattern.compile("\\s+");
String[] arrayOfString2 = pattern.split(simpleString);
        
 for (String reslt : arrayOfString2)
System.out.println(reslt);
...
Рейтинг: 0 / 0
Работа со строками
    #34143952
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageа знаете ли Вы, что метод split() работает в 2 раза медленнее чем если бы разбиение осуществлялось через StringTokenizer? так что выбирать есть из чего.
При выборе между скоростью работы небольшого и явно быстрого участка кода и простотой, а следовательно - легкостью его поддержки я предпочитаю простоту. Оптимизацию надо делать тогда, когда она действительно нужна. "Преждевременная оптимизация - корень всех зол"(с)Кнут.
Сравните эти два участка кода:
Код: plaintext
1.
2.
3.
 private  String[] mySplit(String value) {
     return  value.split("\\.");
}
и
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 private   static  String[] mySplit(String value) {
    StringTokenizer st =  new  StringTokenizer(value, ".");
    String[] result =  new  String[st.countTokens()];
     int  i =  0 ;
     while  (st.hasMoreTokens()) {
        result[i++] = st.nextToken();
    }
     return  result;
}
и решите для себя сами, какую систему Вам было бы удобнее поддерживать и где вероятность ошибок меньше.
...
Рейтинг: 0 / 0
Работа со строками
    #34143973
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Зашедшим. Возможно, что уже в Java 6 скорость работы будет выравнена, а в других реализациях Java, так вообще все наоборот (возможно).
...
Рейтинг: 0 / 0
Работа со строками
    #34143981
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: я не считаю, что предварительная оптимизация не нужна , я считаю, что она должна основываться прежде всего на архитектуре системы, а не на тщательном "ускорении" небольших кусочков кода, которые еще неясно насколько часто вызываются и, скорее всего, на общее быстродействие не влияют.
...
Рейтинг: 0 / 0
Работа со строками
    #34144451
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я полностью согласен с Кнутом и со всеми. Но считаю это условие простоты должно распространяться на участки кода которые подвержены дальнейшему развитию и т.п.
когда появляются в программе участки кода, настолько отлаженые и вылизанные как например функция System.out.println() - можно и соптимизировать.

я просто уточнил что метод split удобен несомненно, но медленнен.
...
Рейтинг: 0 / 0
Работа со строками
    #34144456
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fjord unicornmirage Зашедший грузинА tokinzer (я не помню как этот класс, но он в тандарте идет) не подойдет?
Пойдет, но зачем? Для того, чтобы массив строк сделать, там придется в цикле обход делать, а так - split и все дела.

а знаете ли Вы, что метод split() работает в 2 раза медленнее чем если бы разбиение осуществлялось через StringTokenizer? так что выбирать есть из чего.
а так быстрее?
Код: plaintext
1.
2.
3.
4.
5.
6.
String simpleString = "Простая строка с разделителями";
        
Pattern pattern = Pattern.compile("\\s+");
String[] arrayOfString2 = pattern.split(simpleString);
        
 for (String reslt : arrayOfString2)
System.out.println(reslt);


если ты посмотришь на метод String.split то увидишь что в нем используются также паттерны для регулярных выражений. :)
...
Рейтинг: 0 / 0
Работа со строками
    #34144489
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageесли ты посмотришь на метод String.split то увидишь что в нем используются также паттерны для регулярных выражений. :)мне было интересно String.split() == Pattern.split() или нет, по скорости. или это в принципе одно и тоже?
...
Рейтинг: 0 / 0
Работа со строками
    #34144503
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший..."Преждевременная оптимизация - корень всех зол"(с)Кнут.

Мне интересно, в каком году он это сказал...
Если в мохнатом, то ладно. Если нет - это что ж, всякие фичи процессоров типа конвейеризации, реордеринга и тому подобных вещей - зло? сомневаюсь.
...
Рейтинг: 0 / 0
Работа со строками
    #34144533
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fjord unicornmirageесли ты посмотришь на метод String.split то увидишь что в нем используются также паттерны для регулярных выражений. :)мне было интересно String.split() == Pattern.split() или нет, по скорости. или это в принципе одно и тоже?Поидее Pattern - скомпилированное представление регулярного выражения, а в String.split() параметр просто строка, поэтому у меня и возник этот вопрос
...
Рейтинг: 0 / 0
Работа со строками
    #34144616
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что делает ваш метод split:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 public  String[] split(String regex,  int  limit) {
	 return  Pattern.compile(regex).split( this , limit);
}

 public  String[] split(String regex) {
         return  split(regex,  0 );
}
...
Рейтинг: 0 / 0
Работа со строками
    #34144622
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоесть тоже самое, что ты привел в примере выше :)
...
Рейтинг: 0 / 0
Работа со строками
    #34144630
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm Зашедший..."Преждевременная оптимизация - корень всех зол"(с)Кнут.

Мне интересно, в каком году он это сказал...
Если в мохнатом, то ладно. Если нет - это что ж, всякие фичи процессоров типа конвейеризации, реордеринга и тому подобных вещей - зло? сомневаюсь.
Ты, видимо, совершенно не понял, о чем он говорил...
...
Рейтинг: 0 / 0
Работа со строками
    #34144636
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageтоесть тоже самое, что ты привел в примере выше :)не одному мне этот ворос пришол в голову кто то даже доказал что Patern.split быстрее
...
Рейтинг: 0 / 0
Работа со строками
    #34144637
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший Timm Зашедший..."Преждевременная оптимизация - корень всех зол"(с)Кнут.

Мне интересно, в каком году он это сказал...
Если в мохнатом, то ладно. Если нет - это что ж, всякие фичи процессоров типа конвейеризации, реордеринга и тому подобных вещей - зло? сомневаюсь.
Ты, видимо, совершенно не понял, о чем он говорил...
Не четал, согласен. Здесь контекст не ясен.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа со строками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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