java.lang.String클래스

윤재열·2022년 1월 11일
2

Java

목록 보기
19/71

String 클래스

C언어에서는 문자열을 char형 배열로 표현하지만, 자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공한다.
String클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 잇는 다양한 메서드가 포함되어있다.
이러한 String클래스는 java.lang 패키지에 포함되어 제공된다.

  • String 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없습니다.
    이러한 객체를 자바에서는 불변 (immutable object)라고 한다.
  • 즉, 자바에서 덧셈(+) 연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이 아니라 내용이 합쳐진 새로운 String인스턴스가 생성되는 것이다.

chatAt()메서드

chatAt()메서드는 해당 문자열의 특정 인덱스에 해당하는 문자를 반환한다.
만약 해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면, IndexOutOfBoundExceoption 오류가 발생한다.

  • 다음 예제는 문자열의 각 문자를 charAt()메서드를 이용하여 하나씩 출력하는 예제입니다.
String str = new String("Java");
System.out.println("원본 문자열 : " +str);	//원본문자열 : Java

for(int i =0; i< str.length(); i++){
System.out.print(str.charAt(i) + " ");	//J a v a
}
System.out.println(charAt()메서드 호출 후 원본 문자열 : " + str);	//charAt()메서드 호출 후 원본 문자열 : Java

compareTo()메서드

이 메서드는 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교합니다.
이 메소드는 문자열을 비교할 때 대소문자를 구분하여 비교합니다.
만약 두 문자열이 같다면 0을 반환하며,해당 문자열이 인수로 전달된 문자열보다 작으면 음수를,크면 양수를 반환합니다.

만약 문자열을 비교할 때 대소문자를 구분하지 않기를 원한다면, compareToignoreCase()메서드를 사용하면 된다.

  • 다음 예제는 compareTo()메서드와 compareToignoreCase()메서드를 이용하여 두문자열을 비교하는 예제입니다.
public class compareToTest {
    public static void main(String[] args) {
        String str = new String("abcd");
        System.out.println("원본 문자열 : " + str);  //원본 문자열 : abcd
        System.out.println(str.compareTo("bcef"));  // 인수 abcd는 해당문자열 bcef 보다 1만큼 작으니까 -1
        System.out.println(str.compareTo("abcd"));  // 인수 abcd는 해당문자열 abcd 와 같으므로 0
        System.out.println(str.compareTo("Abcd"));  // 인수 abcd는 해당문자열 Abcd 보다 32먄큼 크므로 32
        System.out.println(str.compareToIgnoreCase("Abcd"));    ///compareToIgnoreCase()메서드를 사용하여 대,소문자 구분이 사라졌으니 0
        System.out.println("compareTo() 메소드 호출 후 원본 문자열 : " + str); //compareTo() 메소드 호출 후 원본 문자열 : abcd
    }
}

concat()메서드

concat()메서드는 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환합니다.
만약 인수로 전달된 문자열의 길이가 0이면, 해당 문자열을 그대로 반환한다.

  • 다음 예제는 concat()메서드를 이용하여 두 문자열을 연결하는 예제입니다.
public class ConcatTest {
    public static void main(String[] args) {

        String str = new String("Java");
        System.out.println("원본문자열 : " + str);   //원본문자열 : Java
        System.out.println(str.concat("수업"));   //Java수업
        System.out.println("concat()메서드 후 원본문자열 : " + str); //concat()메서드 후 원본문자열 : Java
    }
}

indexOf()메서드

indexOf()메서드는 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환한다.
만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반홚나다.

  • 다음 예제는 indexOf()메서드를 이용하여 특정 문자나 문자열이 처음 등장하는 위치의 인덱스를 찾는 예제이다.
public class IndexOfTest {
    public static void main(String[] args) {
        String str = new String("Oracle Java");
        System.out.println("원본 문자열 : " + str);  //원본 문자열 : Oracle Java

        System.out.println(str.indexOf('o'));   //소문자 o는 인수에 없으므로 -1을 출력
        System.out.println(str.indexOf('a'));   //소문자 a는 인수에서 [2]번째 있으므로 2 출력
        System.out.println(str.indexOf("Java"));    //문장 Java는 띄어쓰기를 초함하여 [7]번째 있으므로 7 출력
        System.out.println("indexOf() 메소드 호출 후 원본 문자열 : " + str);   //indexOf() 메소드 호출 후 원본 문자열 : Oracle Java
    }
}

이와 같이 String클래스의 메서드는 매우 다양하며, 추후에 문제를 풀거나 공부하면서 Stirng클래스의 메서드를 다시 공부하겠습니다.


profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글