JAVA/포스팅

자바 String클래스

짜집퍼박사(짜박) 2023. 11. 15. 14:46

java.lang.String 클래스는 Java에서 문자열을 나타내는 클래스로 매우 중요하며 자주 사용됩니다. 이 클래스는 불변(immutable)하며, 문자열에 대한 다양한 작업을 수행할 수 있는 다양한 메서드를 제공합니다. 불변성은 한 번 생성된 문자열은 변경할 수 없다는 의미이며, 변경이 필요한 경우 새로운 문자열을 생성합니다.

 

주요 특징

 

1. 불변성(Immutable)

String 객체는 한 번 생성되면 그 값을 변경할 수 없습니다. 즉, 생성된 문자열의 내용을 수정할 수 없습니다.

2. 문자열 리터럴

문자열 리터럴은 프로그램에서 문자열을 만드는 간편한 방법입니다. 예를 들면 "Hello, World!"와 같은 것이 문자열 리터럴입니다.

 

3. 메서드 체이닝(Method Chaining)

String 클래스의 메서드는 대부분 새로운 문자열을 반환하기 때문에 메서드를 연속적으로 호출하여 사용할 수 있습니다.

 

4. 문자열 생성

리터럴을 사용하여 문자열을 생성할 수 있습니다.

String str1 = "Hello, World!"; // 리터럴을 사용
String str2 = new String("Hello, World!"); // 생성자를 사용

 

 

주요 메서드

 

1. length()

문자열의 길이(문자 수)를 반환합니다.

String str = "Hello, World!";
int length = str.length();  // 13

 

2. charAt(int index)

지정된 인덱스 위치의 문자를 반환합니다.

String str = "Hello, World!";
char character = str.charAt(7);  // 'W'

 

3. substring(int beginIndex) 및 substring(int beginIndex, int endIndex)

부분 문자열을 반환합니다.

String str = "Hello, World!";
String sub1 = str.substring(7);          // "World!"
String sub2 = str.substring(7, 12);      // "World"

 

4. concat(String str)

문자열을 이어붙입니다.

String str1 = "Hello, ";
String str2 = "World!";
String result = str1.concat(str2);  // "Hello, World!"

 

5. equals(Object obj)

두 문자열이 동일한지 여부를 확인합니다.

String str1 = "Hello, World!";
String str2 = "Hello, World!";
boolean isEqual = str1.equals(str2);  // true

 

6. equalsIgnoreCase(String anotherString)

대소문자를 구분하지 않고 두 문자열이 동일한지 여부를 확인합니다.

String str1 = "Hello, World!";
String str2 = "hello, world!";
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2);  // true

 

7. indexOf(String str)

주어진 문자열이 처음으로 나타나는 위치의 인덱스를 반환합니다.

String str = "Hello, World!";
int index = str.indexOf("World");  // 7

 

8. startsWith(String prefix) 및 endsWith(String suffix)

주어진 접두사(prefix) 또는 접미사(suffix)로 시작하거나 끝나는지 여부를 확인합니다.

String str = "Hello, World!";
boolean startsWithHello = str.startsWith("Hello");   // true
boolean endsWithWorld = str.endsWith("World!");      // true

 

9. toLowerCase() 및 toUpperCase()

문자열의 모든 문자를 소문자 또는 대문자로 변환합니다.

String str = "Hello, World!";
String lowerCase = str.toLowerCase();  // "hello, world!"
String upperCase = str.toUpperCase();  // "HELLO, WORLD!"

 

10. trim()

문자열의 앞뒤에 있는 공백을 제거합니다.

String str = "   Hello, World!   ";
String trimmed = str.trim();  // "Hello, World!"

 

11. split(String regex)

정규 표현식을 기준으로 문자열을 나눕니다.

String str = "apple,orange,banana";
String[] fruits = str.split(",");  // ["apple", "orange", "banana"]

 

12. replace(char oldChar, char newChar) 및 replaceAll(String regex, String replacement)

문자 또는 정규 표현식을 사용하여 문자열 내의 특정 문자 또는 패턴을 대체합니다.

String str = "Hello, World!";
String replaced = str.replace('o', '0');            // "Hell0, W0rld!"
String regexReplaced = str.replaceAll("[aeiou]", "*"); // "H*ll*, W*rld!"

 

13. format(String format, Object... args)

지정된 형식에 따라 문자열을 포맷합니다. C 언어의 printf와 유사합니다.

String formattedString = String.format("Hello, %s!", "John");
// "Hello, John!"

 

14. compareTo(String anotherString)

두 문자열을 사전 순서로 비교합니다.

String str1 = "apple";
String str2 = "banana";
int result = str1.compareTo(str2);  // 음수 값, str1이 str2보다 앞에 위치함

 

15. intern()

문자열을 상수 풀(constant pool)에서 찾아서 반환합니다.

String str1 = "Hello";
String str2 = new String("Hello");
String internedStr2 = str2.intern();
System.out.println(str1 == str2);          // false
System.out.println(str1 == internedStr2);  // true

String 클래스는 많은 다양한 메서드를 제공하므로 필요에 따라 적절한 메서드를 선택하여 사용할 수 있습니다. 또한, StringBuilder와 StringBuffer 클래스도 문자열을 다루는데 사용되며, 특히 문자열을 동적으로 변경해야 할 경우에 유용합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 StringBuilder클래스  (0) 2023.11.15
자바 StringBuffer클래스  (0) 2023.11.15
자바 java.lang패키지  (0) 2023.11.15
자바 연결된 예외 (chained exception)  (0) 2023.11.15
자바 예외 되던지기  (0) 2023.11.15