Каков стиль рекомендации для оператора конкатенации строк Java "+"? - PullRequest
0 голосов
/ 18 июля 2011

Каков стиль рекомендации для оператора конкатенации строк Java "+"?

Редактировать: В частности, он должен использоваться или нет?

Ответы [ 5 ]

3 голосов
/ 18 июля 2011

Thinking in Java (Eckel) говорит, что оператор перегруженного + реализован с использованием StringBuilder (хотя не все компиляторы могут поддерживать это в соответствии с ответом alphazero), и, таким образом, избегаются множественные объекты String и связанное использование памяти и сборка мусора. Учитывая это, я бы ответил на свой собственный вопрос, сказав, что оператор +, вероятно, в порядке, по стилю. Единственное предостережение в том, что + - единственный случай перегрузки в языке, и что исключительность может считаться незначительной причиной, чтобы не использовать его. Оглядываясь назад, можно сказать, что преимущество краткости довольно важно в некоторых ситуациях, и это должно учитывать большой стиль.

1 голос
/ 18 июля 2011

Пока членам вашей команды это удобно.

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

0 голосов
/ 21 апреля 2019

В соответствии с соглашениями Java о кодировании Строки должны быть объединены следующим образом:

String str = "Long text line " 
             + "more long text.";

Убедитесь, что оператор '+' всегда начинает следующую строку.https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#248

Прекрасно использовать оператор '+' для конкатенации строк, есть разные библиотеки, которые предоставляют другую структуру для него, но для меня это самый простой способ.

Надеюсь, это поможет!

Удачного кодирования,

Брейди

0 голосов
/ 18 июля 2011

Общая рекомендация - не использовать эту форму (вообще), если производительность имеет значение, а вместо этого использовать StringBuilder или StringBuffer (для вашей модели потоков).Причина проста: строки в java являются неизменяемыми, и оператор '+' создаст много промежуточных объектов String при обработке выражений формы S1 + S2 + ... + Sn.

[Edit: Оптимизация конкатенации строк ]

0 голосов
/ 18 июля 2011

Это то, что вы имели в виду?

"string1" + "string"

или, если у вас длинные строки

"a really long string....." +
"another really long string......" +
"ditto once again" +
"the last one, I promise"

Если у вас есть время отформатировать это право, то:

"a really long string....."        +
"another really long string......" +
"ditto once again"                 +
"the last one, I promise"

По сути, каждый раз, когда вы используете оператор +, вы должны использовать его как минимум с одним пробелом до и после.Если вы используете его при объединении длинных строк, поместите его в конец строки.

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