"아미고, 어떻게 생각해? int 다음으로 가장 인기 있는 자바 클래스는 뭐야?"

"이미 수업 제목에 스포일러를 주셨군요, 엘리. 바로 String!"

"실제로, 그것은 스포일러입니다. String절대적으로 모든 곳에서 사용됩니다. 알고 있으면 더 좋은 유용한 방법이 많이 있습니다.

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

"또한 이 String클래스에는 Java에서 문자열 작업을 더욱 단순화하는 것을 목적으로 하는 많은 도우미 클래스가 있습니다. 이 모든 것을 배우면 많은 작업을 훨씬 쉽게 수행할 수 있습니다."

"나는 기다릴 수 없어."

"음, 우리는 이 생태계의 핵심인 클래스의 구성부터 시작할 것입니다 String. 클래스의 구조는 실제로 매우 간단합니다. 클래스 내부에는 문자열의 모든 문자를 저장하는 문자 배열 ( 배열) String이 있습니다 . 예를 들어 'Hello'라는 단어가 저장되는 방식은 다음과 같습니다.char

String 클래스의 구조

중요합니다.

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

String 클래스의 메서드

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()
문자열을 문자열 풀에 넣습니다.

"매우 좋아 보인다!"

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

솔루션 1.char 어레이 사용

암호 노트
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);
스캐너 개체 만들기
콘솔에서 한 줄 읽기 한 문자를

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

"저는 세 번째 솔루션이 가장 마음에 들었습니다. 하지만 세 가지 모두 연습하겠습니다."

"잘했어, 아미고. 이미 새로운 지식을 실행에 옮기는 데 조바심을 내고 있는 것 같군. 수업은 끝났어."