Приоритет в строках в Java

1

Каково объяснение этого приоритета в строках в java?

public class PrecedenceInStrings {

public static void main(String[] args){

int x = 3;
int y = 5;

String s6 = x + y + "total";
String s7 = "total " + x + y;
String s8 = " " + x + y + "total";

System.out.println(s6 + "\n" + s7 + "\n" + s8);
}
}

вывод:

8total

всего 35

35total

Теги:

1 ответ

1
Лучший ответ

Компилятор Java обрабатывает операторы + в ваших выражениях слева направо. Когда дело доходит до первого + в

x + y + "total"

он видит int с обеих сторон, поэтому он выполняет добавление. Когда Java-компилятор обрабатывает второй +, он видит int и String и интерпретирует оператор как конкатенацию строк.

В вашем втором и третьем выражениях левая часть оператора + является строкой, поэтому все операторы интерпретируются как конкатенации.

Если вы хотите принудительно выполнить определенный порядок операций, используйте круглые скобки. Например, если вы хотите получить общее количество в своем третьем примере, скопируйте добавление, например:

String s8 = " " + (x + y) + "total";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню