~ 안에 자바 에서 string은 기본적으로 char 값의 시퀀스를 나타내는 객체입니다. 안 정렬 문자 수는 Java 문자열과 동일하게 작동합니다. 예를 들어:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
다음과 동일합니다:
String s='javatpoint';
자바 문자열 클래스는 Compare(), concat(), equals(), Split(), length(), replacement(), CompareTo(), intern(), substring() 등과 같이 문자열에 대한 작업을 수행하는 많은 메서드를 제공합니다.
java.lang.String 클래스는 다음을 구현합니다. 직렬화 가능 , 유사한 그리고 CharSequence 인터페이스 .
CharSequence 인터페이스
CharSequence 인터페이스는 문자 시퀀스를 나타내는 데 사용됩니다. 끈, 문자열 버퍼 그리고 스트링빌더 클래스가 이를 구현합니다. 즉, 이 세 가지 클래스를 사용하여 Java에서 문자열을 만들 수 있다는 의미입니다.
Java 문자열은 변경할 수 없습니다. 즉, 변경할 수 없습니다. 문자열을 변경할 때마다 새 인스턴스가 생성됩니다. 변경 가능한 문자열의 경우 StringBuffer 및 StringBuilder 클래스를 사용할 수 있습니다.
불변 문자열에 대해서는 나중에 논의하겠습니다. 먼저 Java의 String이 무엇인지, String 객체를 생성하는 방법을 이해해 보겠습니다.
Java에서 문자열이란 무엇입니까?
일반적으로 문자열은 일련의 문자입니다. 그러나 Java에서 문자열은 일련의 문자를 나타내는 객체입니다. java.lang.String 클래스는 문자열 객체를 생성하는 데 사용됩니다.
문자열 객체를 만드는 방법은 무엇입니까?
String 객체를 생성하는 방법에는 두 가지가 있습니다.
- 문자열 리터럴 기준
- 새로운 키워드별
1) 문자열 리터럴
Java 문자열 리터럴은 큰따옴표를 사용하여 생성됩니다. 예를 들어:
String s='welcome';
문자열 리터럴을 생성할 때마다 JVM은 '문자열 상수 풀'을 먼저 확인합니다. 문자열이 풀에 이미 존재하는 경우 풀링된 인스턴스에 대한 참조가 반환됩니다. 풀에 문자열이 없으면 새 문자열 인스턴스가 생성되어 풀에 배치됩니다. 예를 들어:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
위의 예에서는 하나의 객체만 생성됩니다. 첫째, JVM은 문자열 상수 풀에서 'Welcome' 값을 가진 문자열 개체를 찾지 못하므로 새 개체를 생성합니다. 그런 다음 풀에서 'Welcome' 값이 있는 문자열을 찾고 새 개체를 생성하지 않지만 동일한 인스턴스에 대한 참조를 반환합니다.
참고: 문자열 개체는 '문자열 상수 풀'이라는 특수 메모리 영역에 저장됩니다.
Java가 문자열 리터럴 개념을 사용하는 이유는 무엇입니까?
Java의 메모리 효율성을 높이기 위해(문자열 상수 풀에 이미 존재하는 경우 새 객체가 생성되지 않기 때문에)
2) 새로운 키워드 기준
String s=new String('Welcome');//creates two objects and one reference variable
그러한 경우, JVM 풀이 아닌 일반 힙 메모리에 새 문자열 개체를 만들고 리터럴 'Welcome'이 문자열 상수 풀에 배치됩니다. 변수 s는 힙(비풀)의 개체를 참조합니다.
중앙 CSS의 버튼
자바 문자열 예
StringExample.java
public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }}지금 테스트해보세요
산출:
java strings example
위의 코드는 숯 로 배열 끈 물체. 그리고 String 개체를 표시합니다. s1, s2 , 그리고 s3 콘솔에서 프린트() 방법.
Java 문자열 클래스 메소드
java.lang.String 클래스는 char 값 시퀀스에 대한 작업을 수행하는 데 유용한 많은 메서드를 제공합니다.
아니요. | 방법 | 설명 |
---|---|---|
1 | char charAt(정수 인덱스) | 특정 인덱스에 대한 char 값을 반환합니다. |
2 | 정수 길이() | 문자열 길이를 반환합니다. |
삼 | 정적 문자열 형식(문자열 형식, 개체... args) | 형식화된 문자열을 반환합니다. |
4 | 정적 문자열 형식(로케일 l, 문자열 형식, 개체... args) | 주어진 로케일로 형식화된 문자열을 반환합니다. |
5 | 문자열 하위 문자열(int startIndex) | 주어진 시작 인덱스에 대한 하위 문자열을 반환합니다. |
6 | 문자열 하위 문자열(int startIndex, int endIndex) | 주어진 시작 인덱스와 끝 인덱스에 대한 하위 문자열을 반환합니다. |
7 | 부울 포함(CharSequence s) | char 값의 순서를 일치시킨 후 true 또는 false를 반환합니다. |
8 | 정적 문자열 조인(CharSequence 구분 기호, CharSequence... 요소) | 결합된 문자열을 반환합니다. |
9 | 정적 문자열 조인(CharSequence 구분 기호, Iterable 요소) | 결합된 문자열을 반환합니다. |
10 | 부울 같음(다른 개체) | 주어진 객체와 문자열이 같은지 확인합니다. |
열하나 | 부울 isEmpty() | 문자열이 비어 있는지 확인합니다. |
12 | 문자열 연결(문자열 str) | 지정된 문자열을 연결합니다. |
13 | 문자열 교체(이전 문자, 새 문자) | 지정된 char 값의 모든 항목을 대체합니다. |
14 | 문자열 교체(CharSequence old, CharSequence new) | 지정된 CharSequence의 모든 항목을 대체합니다. |
열 다섯 | 정적 문자열은 IgnoreCase(다른 문자열)입니다. | 다른 문자열을 비교합니다. 대소문자를 확인하지 않습니다. |
16 | 문자열[] 분할(문자열 정규식) | 정규식과 일치하는 분할 문자열을 반환합니다. |
17 | String[] 분할(문자열 정규식, 정수 제한) | 정규식 및 제한과 일치하는 분할 문자열을 반환합니다. |
18 | 문자열 인턴() | 인턴된 문자열을 반환합니다. |
19 | int indexOf(int ch) | 지정된 char 값 인덱스를 반환합니다. |
이십 | int indexOf(int ch, int fromIndex) | 주어진 인덱스로 시작하는 지정된 char 값 인덱스를 반환합니다. |
이십 일 | int indexOf(문자열 하위 문자열) | 지정된 하위 문자열 인덱스를 반환합니다. |
22 | int indexOf(문자열 하위 문자열, int fromIndex) | 주어진 인덱스로 시작하는 지정된 하위 문자열 인덱스를 반환합니다. |
23 | 문자열 toLowerCase() | 문자열을 소문자로 반환합니다. |
24 | 문자열 toLowerCase(로캘 l) | 지정된 로캘을 사용하여 문자열을 소문자로 반환합니다. |
25 | 문자열 toUpperCase() | 문자열을 대문자로 반환합니다. |
26 | 문자열 toUpperCase(로캘 l) | 지정된 로캘을 사용하여 문자열을 대문자로 반환합니다. |
27 | 문자열 다듬기() | 이 문자열의 시작과 끝 공백을 제거합니다. |
28 | 정적 문자열 valueOf(int 값) | 주어진 유형을 문자열로 변환합니다. 오버로드된 방법입니다. |
당신은 알고 있나요?
- String 객체는 왜 불변인가요?
- 불변 클래스를 만드는 방법은 무엇입니까?
- 문자열 상수 풀이란 무엇입니까?
- +(문자열 연결 연산자)로 문자열을 연결하면 컴파일러는 어떤 코드를 작성합니까?
- StringBuffer와 StringBuilder 클래스의 차이점은 무엇입니까?
문자열 처리에서는 무엇을 배울까요?
- 문자열의 개념
- 불변 문자열
- 문자열 비교
- 문자열 연결
- 하위 문자열의 개념
- 문자열 클래스 메서드 및 사용법
- StringBuffer 클래스
- StringBuilder 클래스
- 불변 클래스 생성
- toString() 메서드
- StringTokenizer 클래스