일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 자바스크립트 코딩의 기술
- Kotlin
- 고잉버스
- java 백준 1차원 배열
- 문자열
- 카카오
- 개발자 회고록
- Linux
- 코테
- 리눅스마스터 3과목
- Java
- 연습문제
- 코딩테스트
- 리눅스
- Memoir
- JavaScript
- GoingBus
- 스프링 빈
- toCharArray
- 프로그래머스
- 스프링 컨테이너
- 리눅스마스터 1급 정리
- 반복문
- 백준 javascript
- 명령어
- 백준 java
- 월간코드챌린지
- map
- 리눅스마스터1급
- 자바
- Today
- Total
hoon DevLog
Java String class 자바 스트링 클래스 본문
안녕하세요:)
이번 시간에는 Object Class에 이어서,
String Class에 대해서 알아보도록 하겠습니다.
String 클래스란?
자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공합니다.
String 클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메서드가 포함되어 있습니다.
이러한 String 클래스는 java.lang 패키지에 포함되어 제공됩니다.
String 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없습니다.
이러한 객체를 자바에서는 불변 객체(immutable object)라고 합니다.
즉, 자바에서 덧셈(+) 연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이 아니라,
내용이 합쳐진 새로운 String 인스턴스가 생성되는 것입니다.
charAt() 메소드
charAt() 메서드는 해당 문자열의 특정 인덱스에 해당하는 문자를 반환합니다.
만약 해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면, IndexOutOfBoundsException 오류가 발생합니다.
다음 예제는 문자열의 각 문자를 charAt() 메서드를 이용하여 하나씩 출력하는 예제입니다.
String str = new String("Java");
System.out.println("원본 문자열 : " + str);
for (int i = 0; i < str.length(); i++) {
System.out.print(str.charAt(i) + " ");
}
System.out.println("\ncharAt() 메소드 호출 후 문자열 : " + str);
//실행결과
//원본 문자열 : Java
//J a v a
//charAt() 메소드 호출 후 문자열 : Java
compareTo() 메소드
compareTo() 메서드는 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교합니다.
이 메소드는 문자열을 비교할 때 대소문자를 구분하여 비교합니다.
만약 두 문자열이 같다면 0을 반환하며, 해당 문자열이 인수로 전달된 문자열보다 작으면 음수를,
크면 양수를 반환합니다.
만약 문자열을 비교할 때 대소문자를 구분하지 않기를 원한다면,
compareToIgnoreCase() 메서드를 사용하면 됩니다.
다음 예제는 compareTo() 메서드와 compareToIgnoreCase() 메소드를 이용하여,
두 문자열을 비교하는 예제입니다.
String str = new String("abcd");
System.out.println("원본 문자열 : " + str);
System.out.println(str.compareTo("bcef"));
System.out.println(str.compareTo("abcd") + "\n");
System.out.println(str.compareTo("Abcd"));
System.out.println(str.compareToIgnoreCase("Abcd"));
System.out.println("compareTo() 메소드 호출 후 원본 문자열 : " + str);
//실행결과
//원본 문자열 : abcd
//-1
//0
//32
//0
//compareTo() 메소드 호출 후 원본 문자열 : abcd
concat() 메소드
concat() 메서드는 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환합니다.
만약 인수로 전달된 문자열의 길이가 0이면, 해당 문자열을 그대로 반환합니다.
다음 예제는 concat() 메서드를 이용하여 두 문자열을 연결하는 예제입니다.
String str = new String("Java");
System.out.println("원본 문자열 : " + str);
System.out.println(str.concat("수업"));
//실행결과
//원본 문자열 : Java
//Java수업
indexOf() 메소드
indexOf() 메서드는 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환합니다.
만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반환합니다.
다음 예제는 indexOf() 메서드를 이용하여 특정 문자나 문자열이 처음 등장하는 위치의 인덱스를 찾는 예제입니다.
String str = new String("Oracle Java");
System.out.println("원본 문자열 : " + str);
System.out.println(str.indexOf('o'));
System.out.println(str.indexOf('a'));
System.out.println(str.indexOf("Java"));
System.out.println("indexOf() 메소드 호출 후 원본 문자열 : " + str);
//실행결과
//원본 문자열 : Oracle Java
//-1
//2
//7
//indexOf() 메소드 호출 후 원본 문자열 : Oracle Java
위의 예제처럼 indexOf() 메서드는 문자나 문자열을 찾을 때 대소문자를 구분합니다.
trim() 메소드
trim() 메소드는 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거해 줍니다.
다음 예제는 trim() 메서드를 이용하여 문자열에 포함된 띄어쓰기와 탭 문자를 제거하는 예제입니다.
String str = new String(" Java ");
System.out.println("원본 문자열 : " + str);
System.out.println(str + '|');
System.out.println(str.trim() + '|');
System.out.println("trim() 메소드 호출 후 원본 문자열 : " + str);
//실행결과
//원본 문자열 : Java
// Java |
//Java|
//trim() 메소드 호출 후 원본 문자열 : Java
대표적인 String 메소드
String 클래스의 메서드는 매우 다양하며, 그중에서 많이 사용되는 메소드는 다음과 같습니다.
메소드 | 설명 |
char charAt(int index) | 해당 문자열의 특정 인덱스에 해당하는 문자를 반환함. |
int compareTo(String str) | 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교함. |
int compareToIgnoreCase(String str) | 해당 문자열을 인수로 전달된 문자열과 대소문자를 구분하지 않고, 사전 편찬 순으로 비교함. |
String concat(String str) | 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환함. |
int indexOf(int ch) int indexOf(String str) |
해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환함. |
int indexOf(int ch, int fromIndex) int indexOf(String str, int fromIndex) |
해당 문자열에서 특정 문자나 문자열이 전달된 인덱스 이후에 처음으로 등장하는 위치의 인덱스를 반환함. |
int lastIndexOf(int ch) | 해당 문자열에서 특정 문자가 마지막으로 등장하는 위치의 인덱스를 반환함. |
int lastIndexOf(int ch, int fromIndex) | 해당 문자열에서 특정 문자가 전달된 인덱스 이후에 마지막으로 등장하는 위치의 인덱스를 반환함. |
String[] split(String regex) | 해당 문자열을 전달된 정규 표현식(regular expression)에 따라 나눠서 반환함. |
String substring(int beginIndex) | 해당 문자열의 전달된 인덱스부터 끝까지를 새로운 문자열로 반환함. |
String substring(int begin, int end) | 해당 문자열의 전달된 시작 인덱스부터 마지막 인덱스까지를 새로운 문자열로 반환함. |
String toLowerCase() | 해당 문자열의 모든 문자를 소문자로 변환함. |
String toUpperCase() | 해당 문자열의 모든 문자를 대문자로 변환함. |
String trim() | 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거함. |
length() | 해당 문자열의 길이를 반환함. |
isEmpty() | 해당 문자열의 길이가 0이면 true를 반환하고, 아니면 false를 반환함. |
사실상 우리가 모든 메서드를 외울 수는 없습니다..ㅠㅠ
하지만 들어갈 인자값과 메서드의 이름이 눈에 어느 정도 익는다면,
찾아서 쓰더라도 시간도 절감되고 효율적으로 사용할 수 있을 거예요 ㅎㅎㅎ
결국... 우리는 끊임없이 테스트해보고 코딩으로 익혀야겠죠?
일이 아닌 배움의 연장선으로 생각한다면, 덜 스트레스받을 것 같아요!
우리 모두 코딩의 고수가 되는 그 날까지... 모두 파이팅입니다!
오늘도 수고하셨습니다:)
출처 : 자바의 정석 3rd Edition 내용 정리
'IT > Java' 카테고리의 다른 글
Java Generic 자바 제네릭 선언 및 생성 (0) | 2021.01.11 |
---|---|
Java Wrapper class 자바 래퍼클래스 (0) | 2021.01.06 |
Java Object class 객체클래스 (0) | 2021.01.06 |
Java public, protected, private, static, final 제어자 (0) | 2021.01.06 |
Java interface implements 자바 인터페이스 구현 (0) | 2021.01.06 |