сделать оператор + частью уравнения вместо объединения строк

avatar
westae
9 августа 2021 в 06:52
52
4
0

Несколько недель назад я взялся за Java и столкнулся с этой проблемой:

System.out.print("Please enter the #" + i + 1 + " data: ");

В настоящее время вывод кода выглядит следующим образом: «Пожалуйста, введите данные #01:», вместо «Пожалуйста, введите данные #1:». Как сделать так, чтобы оператор + между i и 1 складывал их вместе, а не соединял строку?

Источник
Andy Turner
9 августа 2021 в 07:16
0

+ является левоассоциативным. Таким образом, a + b + c + d оценивается как ((a + b) + c) + d.

Ответы (4)

avatar
xuanzjie
9 августа 2021 в 07:34
0

В предыдущем ответе уже было объяснено решение, позвольте мне объяснить причину. Так как в качестве конкатенации используется несколько знаков +, а одинаковые знаки плюса, очевидно, следуют принципу действия, то есть добавляют их по порядку справа налево. В Java строка + целое число автоматически преобразуется в строку. Так появляется результат "#01". Когда вы используете # + (i + 1), приоритет операции изменяется таким образом, что приоритет i + 1 выше, чем справа.

avatar
Abdul Rafay
9 августа 2021 в 06:58
1

Заключите целое число в ( i + 1)

System.out.print("Please enter the #" + (i + 1) + " data: ");
avatar
Joachim Sauer
9 августа 2021 в 06:57
2

Добавьте круглые скобки, чтобы пояснить свои намерения:

System.out.print("Please enter the #" + (i + 1) + " data: ");

В качестве альтернативы вы можете использовать printf, чтобы полностью избежать объединения строк вручную:

System.out.printf("Please enter the #%d data: ", i+1);
avatar
Nagaraju Chitimilla
9 августа 2021 в 06:56
1

Когда вы добавляете знак + к строке, он добавляется к существующему строковому значению. если вы хотите напечатать фактическое значение, создайте новую переменную для добавления значений, а затем используйте эту переменную.

например,

int j = i +1;
System.out.print("Please enter the #" + j + " data: ");

Перейдите по следующей ссылке, чтобы узнать больше о конкатенации строк

https://www.javatpoint.com/string-concatenation-in-java