Java 입문부터 Java 15의 3개의 큰따옴표 구문 숙달까지

Java에서 3개의 큰따옴표 """의 구문은 무엇입니까?

이는 Java 15의 새로운 기능입니다. 지식을 새롭게 해보세요!

I. 소개

Java 15가 출시되면서 Text Blocks는 공식적으로 정회원이 되었습니다. 저는 이를 "텍스트 블록"이라고 부릅니다. 뭐, 스택 관리자도 간략한 소개를 해 주었습니다. 아직 보지 못하셨다면 여기를 클릭하여 읽어보실 수 있습니다. .

여러 줄로 구성된 문자열인 텍스트 블록은 대부분의 이스케이프 기호를 사용하지 않고 예측 가능한 방식으로 문자열 형식을 자동으로 지정하며 필요한 경우 개발자가 형식을 제어할 수 있도록 합니다.

텍스트 블록은 처음에는 JDK 12에 추가할 예정이었으나 결국 철회됐다가 JDK 13에서 프리뷰 기능으로 추가됐다가 JDK 14에서 다시 프리뷰됐다. 시간 기능은 당분간 제공되지 않습니다.추가 변경됩니다.

두 가지, 예

이 HTML 언어 예제를 살펴보면 다음 사항을 이해할 수 있습니다.

텍스트 블록을 사용하지 않음::

문자열 html1 = “\n” +

          "    \n" +

          "        

안녕하세요, Java 기술 스택입니다.

\n" +

          "        

관심을 갖고 더 많은 건조 제품을 공유하는 것을 환영합니다.

\n" +

          "    \n" +

          "\n";

텍스트 블록 사용:

문자열 html2 = """

안녕하세요, Java 기술 스택입니다.

관심을 갖고 더 많은 건조 제품을 공유하는 것을 환영합니다.

          """;

텍스트 블록은 세 개의 큰따옴표로 묶어야 합니다. Python에 익숙한 사람이라면 세 개의 큰따옴표가 여러 줄 주석을 나타낸다는 것을 알고 있습니다. Java가 이를 여러 줄 문자열로 사용할 것이라고는 예상하지 못했습니다...

바이트코드를 다시 살펴보겠습니다.

당신은 그것을 볼 않았다? 텍스트 블록이 컴파일된 후 자동으로 개행 문자가 추가됩니다. 이는 원래 스플라이스 작성 방법의 컴파일 결과와 일치하므로 더 이상 문자열을 스플라이스할 필요가 없습니다.

3. 자세한 소개

실제로 텍스트 블록의 기능은 단순한 줄바꿈 그 이상이며, 스택 리더는 아래에서 이에 대해 자세히 소개합니다.

1. 라인 종결자

위에서 언급했듯이 컴파일 중에 줄바꿈을 자동으로 추가하면 Java가 아닌 언어로 작성된 코드 문자열의 가독성을 향상시키는 데 사용할 수 있습니다. 예를 들어 HTML, XML, SQL 언어 코드 등을 연결해야 하는 경우가 종종 있는데, 코드는 다음과 같습니다. 아주 못생긴.

“””

자바

2호선

3호선

“””

다음과 같습니다:

"라인 1\n라인 2\n라인 3\n"

또는:

"라인 1\n" +

"라인 2\n" +

"라인 3\n"

마지막 줄을 줄 바꿈할 필요가 없으면 다음과 같이 작성할 수 있습니다.

“””

라인 1

2호선

3행 """

빈 텍스트 블록을 정의하는 것도 가능합니다:

빈 문자열 = “”"

""";

빈 문자열에도 두 줄의 코드가 필요하므로 이 방법은 권장되지 않습니다.

2. 부수적인 공백

계속해서 위의 코드를 살펴보세요.

참고로 줄은 없고 줄 앞에 공백이 한 줄 있는데, 이는 컴파일되지 않는다는 뜻이다. 읽기 쉽게 들여쓰기와 서식 지정에만 사용되므로 공백 레이아웃이라고 부른다.

"""가 끝에서 단일 행을 차지하는 경우 왼쪽 정렬되고, 그렇지 않으면 가장 왼쪽 열을 기준으로 왼쪽 정렬됩니다.

IDEA는 정말 강력하며 JDK 15를 매우 잘 지원합니다. 활성화 코드가 없다고 해도 문제가 되지 않습니다. 공개 계정 Java 기술 스택을 팔로우하고 답장을 보내면 스택 관리자가 정품 버전을 무료로 얻는 방법을 알려줄 것입니다.

또한 Java 15에는 String.stripIndent 인스턴스 메서드가 추가되어 각 줄의 앞뒤 공백 문자를 직접 삭제할 수 있습니다.

3. 이스케이프 시퀀스(이스케이프 문자)

다음 코드에 표시된 대로:

직접 사용할 수 있는 \s, \n, \t 등의 이스케이프 문자를 코드에 추가했으며, 큰따옴표는 이스케이프할 필요가 없습니다.

결과 출력은 다음과 같습니다.

안녕하세요, "Java Technology Stack"입니다.

주의를 기울이신 것을 환영합니다. \ "더 많은" 건조물을 공유하십시오

실제 업무에서 나타날 수 있는 SQL 문의 철자가 저장됩니다!

텍스트 블록이 없는 경우:

문자열 쿼리 = “SELECT “EMP_ID”, “LAST_NAME” FROM “EMPLOYEE_TB”\n” +

           "WHERE \"CITY\" = 'INDIANAPOLIS'\n" +

           "ORDER BY \"EMP_ID\", \"LAST_NAME\";\n";

텍스트 블록 사용:

문자열 쿼리 = """

           SELECT "EMP_ID", "LAST_NAME" FROM "EMPLOYEE_TB"

           WHERE "CITY" = 'INDIANAPOLIS'

           ORDER BY "EMP_ID", "LAST_NAME";

           """;

물론 SQL을 스플라이싱할 때 SQL 인젝션 취약점이 발생하지 않도록 주의해야 하는데, 이는 단지 사용법에 대한 소개에 불과하다.

또한 Java 15에는 문자열 내용을 직접 이스케이프할 수 있는 String.translateEscapes 이스케이프 메서드가 추가되었습니다.

4. 형식 매개변수

Java 15 이전 형식 문자열의 매개변수는 String.format 정적 메서드를 사용해야 하는데 이는 그다지 편리하지 않지만 Java 15에서는 문자열을 직접 형식화하는 새로운 메서드가 추가됩니다.

위의 SQL 문을 확장하기 위해 매개변수는 자리 표시자로 형식화됩니다.

문자열 쿼리 = """

           SELECT "EMP_ID", "LAST_NAME" FROM "EMPLOYEE_TB"

           WHERE "CITY" = '%s' AND author = '%s'

           ORDER BY "EMP_ID", "LAST_NAME";

           """;

    System.out.println(query.formatted("深圳", "栈长"));

결과 출력은 다음과 같습니다.

'EMPLOYEE_TB'에서 'EMP_ID', 'LAST_NAME'을 선택하세요.

WHERE "CITY" = '심천' AND 작성자 = 'Stack Chief'

ORDER BY “EMP_ID”, “LAST_NAME”;

문자열 객체의 형식화된 인스턴스 메소드를 직접 사용하는 것이 더 편리한 것 같아요!

4. 결론

텍스트 블록(텍스트 블록)을 해석하는 것은 생각보다 훨씬 어렵습니다. 텍스트 블록에 세부 사항이 이렇게 많을 줄은 몰랐습니다. 기사에서는 텍스트 블록의 전체 내용이 아닌 텍스트 블록의 일부만 요약합니다. .어쨌든 당분간은 필요하지 않습니다. 누구나 쉽게 이해할 수 있습니다.

기사 출처: 네트워크 저작권은 원저작자에게 있습니다.

위 내용은 상업적인 목적이 아니며, 지적 재산권 문제와 관련된 경우 편집자에게 연락하시면 즉시 처리해 드리겠습니다.

추천

출처blog.csdn.net/xuezhangmen/article/details/132076322