삼항 연산자의 두 결과를 연결할 때 Java에서 문자열 연결이 제대로 작동하지 않습니다.

다니 일야 르

Java 전문가 여러분!

삼항 연산자의 두 결과를 연결할 때 Java에서 문자열 연결이 제대로 작동하지 않는 이유를 설명해 주시겠습니까?

예:

String str = null;
String x = str != null ? "A" : "B" + str == null ? "C" : "D";
System.out.println(x);

출력은 "D"이지만 "BC"를 예상했습니다.

운영자의 우선 순위 때문에 그렇게 작동한다고 생각하지만 위의 경우에 대해 정확히 "D"를 얻는 방법에 대해서는 확실하지 않습니다. 이 경우 어떤 계산 알고리즘이 발생합니까?

모하마드 자파르 마샤 디

다음 코드로 해석됩니다.

String x = str != null ? "A" : ("B" + str == null ? "C" : "D");

"B" + str null이 아니므로 다음과 같이 평가됩니다. "D"

OSborn의 답변 덕분에 다음 코드로 예상 한 작업을 수행 할 수 있습니다.

String x = (str != null ? "A" : "B") + (str == null ? "C" : "D");

그리고 당신은 단지 비교 str하고 null있고 두 조건문이 거의 동일하기 때문에 다음과 같이 줄일 수 있습니다.

 String x = (str != null ? "AD" : "BC");

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++에서 '+'로 문자열을 연결할 때 연결하지 않고 문자열의 첫 번째 문자를 제거하는 이유

분류에서Dev

결과를 검색하려고 할 때 PHP 클래스로 DB에 연결이 작동하지 않습니다.

분류에서Dev

연산자 '||' '문자열'및 '문자열'유형의 피연산자에 적용 할 수 없습니다 (이 문제를 해결하는 방법).

분류에서Dev

자바 : 삼항 연산자, 제대로 작동하지 않음

분류에서Dev

삼항 조건 연산자를 사용하여 계열에 대한 Python 문자열 연결

분류에서Dev

조건부 삼항 연산자를 문자열 연결에 사용할 수 있습니까?

분류에서Dev

MySQL에 연결할 때 제대로 결과를 얻지 못합니다.

분류에서Dev

연결 연산자와 결합 된 PHP null 병합 연산자가 제대로 작동하지 않습니다.

분류에서Dev

if를 사용하는 것과 반대로 정의에서 삼항 연산자를 사용할 수 있습니까?

분류에서Dev

Angular 출력에서 문자열 연결이 방출되고 예상대로 작동하지 않습니다.

분류에서Dev

이 삼항 연산자의 결과는 무엇입니까?

분류에서Dev

문자열과 연결될 때 문자열이 Int32로 구문 분석되지 않습니다.

분류에서Dev

PowerShell-작동하지 않는 사이에 밑줄로 두 문자열을 연결합니까?

분류에서Dev

재귀에서 단항 연산자 접두사 실행이 예상대로 작동하지 않습니다.

분류에서Dev

@Repository에서 자동 연결이 작동하지 않습니다.

분류에서Dev

if else 문에서 삼항 연산자로의 두 변수

분류에서Dev

Jupyter에서 pyodbc를 사용하여 SQL Server에 연결할 때 연결 문자열의 이중 백 슬래시

분류에서Dev

삼항 연산자를 기존 if 문으로 변환 할 때 정의되지 않은 변수

분류에서Dev

(localDB) \ mssqllocalDB의 자동 생성 연결 문자열이 mvc에서 작동하지 않습니다.

분류에서Dev

삼항 연산자? Javascript에서 예상에서 거꾸로 해결됩니다.

분류에서Dev

awk 문자열 연결이 작동하지 않습니다.

분류에서Dev

SSH를 사용하여 내 상자에 연결하려고 할 때마다 연결되지 않습니다.

분류에서Dev

LINQ 쿼리의 삼항 연산자가 예상대로 작동하지 않습니다.

분류에서Dev

반복적 인 for 루프 내부에서 문자열이 제대로 연결되지 않았습니다.

분류에서Dev

정적 문자열의 연결 보간이 예상대로 작동하지 않습니다.

분류에서Dev

Windows에서 MySQL에 연결할 때 배열 인덱스가 대소 문자를 변경하지만 Linux에서는 연결되지 않음

분류에서Dev

VPN에 연결할 때 이전 연결이 종료되지 않습니다.

분류에서Dev

숫자 열에 대한 DB2 논리 연산은 작은 따옴표를 사용할 때 다른 결과를 제공합니다.

분류에서Dev

삼항 연산자가 C ++에서 두 피연산자를 모두 평가할 수 있습니까?

Related 관련 기사

  1. 1

    C ++에서 '+'로 문자열을 연결할 때 연결하지 않고 문자열의 첫 번째 문자를 제거하는 이유

  2. 2

    결과를 검색하려고 할 때 PHP 클래스로 DB에 연결이 작동하지 않습니다.

  3. 3

    연산자 '||' '문자열'및 '문자열'유형의 피연산자에 적용 할 수 없습니다 (이 문제를 해결하는 방법).

  4. 4

    자바 : 삼항 연산자, 제대로 작동하지 않음

  5. 5

    삼항 조건 연산자를 사용하여 계열에 대한 Python 문자열 연결

  6. 6

    조건부 삼항 연산자를 문자열 연결에 사용할 수 있습니까?

  7. 7

    MySQL에 연결할 때 제대로 결과를 얻지 못합니다.

  8. 8

    연결 연산자와 결합 된 PHP null 병합 연산자가 제대로 작동하지 않습니다.

  9. 9

    if를 사용하는 것과 반대로 정의에서 삼항 연산자를 사용할 수 있습니까?

  10. 10

    Angular 출력에서 문자열 연결이 방출되고 예상대로 작동하지 않습니다.

  11. 11

    이 삼항 연산자의 결과는 무엇입니까?

  12. 12

    문자열과 연결될 때 문자열이 Int32로 구문 분석되지 않습니다.

  13. 13

    PowerShell-작동하지 않는 사이에 밑줄로 두 문자열을 연결합니까?

  14. 14

    재귀에서 단항 연산자 접두사 실행이 예상대로 작동하지 않습니다.

  15. 15

    @Repository에서 자동 연결이 작동하지 않습니다.

  16. 16

    if else 문에서 삼항 연산자로의 두 변수

  17. 17

    Jupyter에서 pyodbc를 사용하여 SQL Server에 연결할 때 연결 문자열의 이중 백 슬래시

  18. 18

    삼항 연산자를 기존 if 문으로 변환 할 때 정의되지 않은 변수

  19. 19

    (localDB) \ mssqllocalDB의 자동 생성 연결 문자열이 mvc에서 작동하지 않습니다.

  20. 20

    삼항 연산자? Javascript에서 예상에서 거꾸로 해결됩니다.

  21. 21

    awk 문자열 연결이 작동하지 않습니다.

  22. 22

    SSH를 사용하여 내 상자에 연결하려고 할 때마다 연결되지 않습니다.

  23. 23

    LINQ 쿼리의 삼항 연산자가 예상대로 작동하지 않습니다.

  24. 24

    반복적 인 for 루프 내부에서 문자열이 제대로 연결되지 않았습니다.

  25. 25

    정적 문자열의 연결 보간이 예상대로 작동하지 않습니다.

  26. 26

    Windows에서 MySQL에 연결할 때 배열 인덱스가 대소 문자를 변경하지만 Linux에서는 연결되지 않음

  27. 27

    VPN에 연결할 때 이전 연결이 종료되지 않습니다.

  28. 28

    숫자 열에 대한 DB2 논리 연산은 작은 따옴표를 사용할 때 다른 결과를 제공합니다.

  29. 29

    삼항 연산자가 C ++에서 두 피연산자를 모두 평가할 수 있습니까?

뜨겁다태그

보관