Конкатенация в java?

#java

#java

Вопрос:

В PHP вы можете объединять строки с помощью .=, чтобы строка росла вместе с тем, что вы к ней добавляете. Интересно, можно ли это сделать на Java? Я провел некоторый тест в этом коде, чтобы добавить все числа в одну длинную строку, но не работает! Можно ли это сделать каким-то другим способом?

 int number = 100;
for (int x = number; x <= 2; x--) {

    resultat = resultat   Integer.toString(x);
}
  

Комментарии:

1. Какой результат вы получаете?

2. Разве этот код никогда не будет выполняться? Условие равно x <= 2, а значение x равно 100. Или я что-то упускаю?

3. Да, вы правы! теперь это работает лучше!

Ответ №1:

Да, = в Java есть .= в PHP:

result = Integer.toString(x) . Вам просто нужно определить String resultat = "" выше цикла. (И, как отмечали другие, исправьте условие вашего цикла, оно всегда равно false)

Однако в циклах вам лучше использовать a StringBuilder . Строка неизменяема, поэтому каждый раз, когда вы используете , создается новая строка (что может быть неэффективно при больших циклах). Вместо:

 StringBuilder builder = new StringBuilder();
for (...) {
    builder.append(x);
}
String result = builder.toString();
  

Ответ №2:

x <= 2 никогда не бывает истинным для x = 100

Вы должны изменить условие на x >= 2

Но вы можете использовать =

Ответ №3:

Ваш цикл for просто нуждается в небольшой работе. В настоящее время у вас x <= 2 есть, когда это должно быть x >= 2 , иначе цикл никогда не будет выполняться, поскольку 100 никогда не меньше 2!

Ответ №4:

В вашем примере это не работает, потому что вы неправильно определили условие завершения for цикла. Вы должны написать это так:

 String resultat = "";
int number = 100;
for (int x = number; x >= 2; x--) {
  resultat = resultat   Integer.toString(x);
}
  

for Цикл — это примерно while цикл с некоторыми небольшими дополнениями. Вот почему вы должны написать условие следующим образом.

Ответ №5:

Попробуйте использовать StringBuilder.append так

     int number = 100;
    StringBuilder builder = new StringBuilder();
    for (int x = number; x <= 2; x--) {
        builder.append(x);
    }
    String result = builder.toString();
  

Комментарии:

1. Спасибо! Stringbuilder был интересным и новостным для меня.