Что такое «стучание строк» ​​и почему это плохо? - PullRequest
4 голосов
/ 26 ноября 2010

Мой босс продолжает использовать термин «разбивание строк» ​​(мы - магазин Java) и, как правило, делаю из меня пример всякий раз, когда я спрашиваю его о чем-либо (как будто я уже должен это знать).Я погуглил этот термин только для того, чтобы найти результаты, относящиеся к теоретической физике и теории струн.

Я предполагаю, что это как-то связано с неправильным использованием String / StringBuilders или не в соответствии с лучшими практиками, но ради моей жизниЯ не могу понять, что это такое.

Ответы [ 6 ]

4 голосов
/ 26 ноября 2010

«Струнная связка» - сленговый термин для обрезания строк и манипулирования ими: расщепления, объединения, вставки, токенизации, разбора и т. Д.

Это не плохо по своей сути (несмотря на коннотацию «срыва»), но, как вы отмечаете, в Java нужно быть осторожным, чтобы не использовать String, когда StringBuilder будет более эффективным.

2 голосов
/ 26 ноября 2010

Почему бы вам не спросить своего босса о примере избиения строк. Не забудьте спросить его о правильном способе рефакторинга примеров, которые он вам дает.

1 голос
/ 27 ноября 2010

В эффективной Java есть пункт об использовании строк: «Пункт 50: Избегайте строк, где другие типы более уместны».Также для stackoverflow: " Строковой тип ".

1 голос
/ 26 ноября 2010

Вне контекста «разбивание строк» ​​на самом деле не имеет никакого значения само по себе.Это не модное слово для любого хорошего или плохого поведения.Это просто означало бы «разбивать строки», как при использовании строковых операций.

Хорошо это или плохо, зависит от того, что вы делаете, и роль строк на самом деле не будет важной.Есть хорошие и плохие способы обработки данных любого типа.

Иногда «разбивающие строки» на самом деле являются лучшим решением.Рассмотрим, например, что вы хотите выделить первые три символа строки.Вы можете создать регулярное выражение, которое изолирует символы, но это, безусловно, будет излишним, поскольку есть простая строковая операция, которая может сделать то же самое, что намного быстрее и проще в обслуживании.

0 голосов
/ 26 ноября 2010

В Google есть несколько результатов, которые относятся к разбиванию строк в этом контексте.Они, кажется, не относятся к беспокойству о неэффективных временных и использования StringBuilder.

Вместо этого он, по-видимому, относится к упрощенному разбору строк.Т.е. делать такие вещи, как проверка подстрок, нарезка строк и т. Д. В частности, кажется, что это является хакерским решением проблемы.

Это может быть плохо видно, потому что вы должны либо использовать реальный анализ, либо получить данные в нестроковом формате.

0 голосов
/ 26 ноября 2010

Предположение: это может подразумевать что-то, связанное с созданием ненужных временных объектов, и в данном случае Strings. Например, если вы создаете токен String по токену, то обычно рекомендуется использовать StringBuilder. Если строка не создается с помощью компоновщика, каждая конкатенация будет вызывать создание другого временного объекта (а затем сборщика мусора).

В современных виртуальных машинах (я думаю, HotSpot 1.5 или 1.6) это редко является проблемой, если вы не работаете с критичным к производительности кодом или не строите длинные строки, например, в петлях.

Только предположение; может быть, лучше спросить, что он или она имеет в виду? Я никогда не слышал этот термин раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...