String1. 수업 구성

오늘 우리는 String수업에 대해 이야기 할 것입니다. int 다음으로 String 클래스는 Java에서 가장 많이 사용되는 클래스입니다. 그것은 절대적으로 모든 곳에서 사용됩니다. 그것은 당신이 아는 것이 더 나은 유용한 방법을 많이 가지고 있습니다.

String클래스는 문에서 리터럴을 사용할 수 있는 기본 유형 이외의 유일한 클래스입니다 switch. 컴파일러는 문자열 추가 및 String 개체를 특별한 방식으로 처리합니다. String객체는 특별한 방식으로 메모리에 저장됩니다. 기본적으로 String클래스는 매우 특별한 클래스입니다.

또한 이 String클래스에는 Java에서 문자열 작업을 더욱 단순화하는 것을 목적으로 하는 많은 도우미 클래스가 있습니다. 이 모든 것을 배우면 많은 일을 하기가 정말 훨씬 쉬워질 것입니다. 음, 우리는 이 생태계의 핵심인 학급 조직에서 시작할 것입니다 String.

문자 배열

클래스 의 구조는 String실제로 매우 간단합니다. 내부에는 문자열의 모든 문자를 저장하는 문자 배열(문자 배열)이 있습니다. 예를 들어 'Hello'라는 단어가 저장되는 방식은 다음과 같습니다.

String 클래스의 구조
중요한!

사실 이것은 정확하지 않습니다. 클래스는 매우 중요하기 때문에 String많은 최적화를 사용하고 데이터는 내부적으로 문자 배열이 아닌 단순히 바이트 배열로 저장됩니다.


String2. 수업 방법

String클래스에는 많은 메서드가 있습니다. 생성자만 18개입니다! 따라서 아래에서는 가장 기본적인 것만 언급합니다.

행동 양식 설명
int length()
문자열의 문자 수를 반환합니다.
boolean isEmpty()
문자열이 빈 문자열인지 확인
boolean isBlank()
문자열에 공백, 탭, 새 줄 등의 공백 문자만 포함되어 있는지 확인합니다.
char charAt(int index)
문자열의 인덱스 위치에 있는 문자를 반환합니다.
char[] toCharArray()
문자열을 구성하는 문자(사본)의 배열을 반환합니다.
byte[] getBytes()
문자열을 바이트 집합으로 변환하고 바이트 배열을 반환합니다.
String[] split(String regex)
문자열을 여러 하위 문자열로 분할합니다.
String join(CharSequence delimiter, elements)
여러 하위 문자열을 함께 결합
String intern()
에 문자열을 넣습니다 string pool.

Java 생성자 문서에서 생성자에 대해 자세히 알아볼 수 있습니다 .

파일 경로를 Unix 스타일에서 Windows 스타일로 변환하는 프로그램을 작성해 봅시다. Unix는 /문자를 사용하여 폴더를 구분하고 Windows는 \문자를 사용합니다.

해결 방법 1: 문자 배열 사용

암호 노트
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
스캐너 개체 만들기
콘솔에서 라인 읽기 문자열을

문자 배열로 변환 문자를
반복합니다 .
문자가 이면 로 바꿉니다 . 탈출하는 것을 잊지 마십시오. 문자 배열을 기반으로 새 문자열을 만듭니다. 문자열을 표시합니다. /
\


해결 방법 2:split() — 및 join()방법 사용

암호 노트
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
스캐너 개체 만들기
콘솔에서 한 줄 읽기 문자열을 문자열 배열

로 변환합니다 . 문자 는 구분 기호로 사용됩니다(두 개의 추가 슬래시는 이중 이스케이프의 결과입니다). strings 배열 의 모든 문자열을 연결합니다 . 는 구분 기호로 사용됩니다(이스케이프 처리됨). 문자열을 표시합니다. /
\

해결 방법 3:replace(char oldChar, char newChar) — 방법 사용

암호 노트
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
스캐너 개체 만들기
콘솔에서 한 줄 읽기 한 문자를

다른 문자로 바꾸기만 하면 됩니다
(두 번째 문자는 이스케이프됨)
. 문자열을 표시합니다.