String class

천소진·2022년 8월 31일
0

Study

목록 보기
4/29

String 클래스

  • java.lang 패키지에 포함된 클래스.
  • 자바에서 모든 스트링 리터럴은 내부적으로 String 객체로 처리됨.

String 클래스의 특징.

  • 스트링 리터럴은 리터럴테이블로 특별관리 되며, 동일한 리터럴은 공유해서 사용함.
  • 문자열과 관련된 작업을 할 때 사용되는 여러거자 메소드가 포함되어있음.
  • Stirng객체도 new로 생성된 다른 개체와 동일하게 힙 메모리에 생성됨.
  • String 인스턴스는 한번 생성되면 변경이 불가. = 불변객체
    ==> 연산자를 이용하여 문자열에 변화를 주면 기존 문자열이 변경되는것이 아니라 새로운 인스턴스가 생성됨.

String class의 메소드 활용.

1. CharAt()

  • 문자열의 특정 인덱스에 해당하는 문자를 추출.
  • 문자열 길이보다 큰 인덱스나 음수를 입력하면 오류 발생.

ex)

String a = new String ("Cheon sojin");
system.out.pritntln( "Full name": +a);

for (int i = 0;i<a.lenght();i++){
system.out.printl(a.charAt(i)+" ");
}

실행결과

Full name : Cheon sojin
C h e o n  s o j i n 

2. compareTo()

  • 문자열을 인수로 전달된 문자열과 비교.( 사전 순으로 대소문자를 구분하여 비교)
  • 같은 문자열이라면 0을 반환하고, 비교 문자열보다 작으면 음수, 크면 양수를 반환.
  • 대소문자를 구분하고 싶지 않다면 compareToIgnoreCase()를 사용.
    ex)
String a = abcd;
system.out.println(a);

system.out.println( a.compareTo("abcd"));
system.out.println( a.compareTo("bcef"));
system.out.println( a.compareTo("Abcd"));
system.out.println( a.compareToIgnoreCase("Abcd"));

실행결과

abcd 

0                      // 같은 문자
-1                     //아스키 코드로 비교
32                    
0                      //대소문자를 구분 안한다면 같은 문자

3. concat()

  • 문자열에 인수로 전달된 문자열을 추가하여 새로운 문자열 반환.
  • 전달된 문자열의 길이가 0이면, 워내 문자열만 반환.

ex)

String a = new String ("sojin");
system.out.println(a);

system.out.println(a.concat(" Cheon"));

system.out.println(a);

실행 결과

sojin

sojin Cheon          //문자열 합성 ==> 새로운 객체로 저장.

sojin                // 하지만 원래 문자열은 변하지 않음.

4.indexOf()

  • 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스번호를 반환.
  • 만약 전달된 문자가 문자열에 포함되지 않은 문자라면 -1 반환.

ex)

String a = new String ("sojin");
system.out.println(a);

system.out.println(a.indexOf('w'));
system.out.println(a.indexOf('j'));
system.out.println(a.indexOf('jin'));

system.out.println(a);

실행 결과

sojin

-1  
2                      //인덱스는 0부터 시작
2

sojin                 // 원래 문자열은 변하지 않음.

5. tirm()

  • 문자열의 맨앞과 맨뒤에 포함된 모든 공백 문자를 제거

ex)

String a = new String("  sojin    ");
system.out.println(a);

system.out.println(a + |);
system.out.println(a.trim() + |);

system.out.println(a);

실행 결과

  sojin    
  
  sojin    |
sojin|

  sojin    
  

6. toLowerCase()/toUpperCase()

  • 문자열의 모든 문자를 소문자 또는 대문자로 변환.

ex)

String a = new String("Sojin")
system.out.println(a);

system.out.println(a.toLowerCase());
system.out.println(a).toUpperCase());

system.out.println(a);

실행 결과

Sojin

sojin                 // 전부 소문자로 
SOJIN                 // 전부 대문자로

Sojin                 // 원래 문자열은 변하지 않음.

그 외의 여러가지 메소드

  • lastindexOf() : 특정문자가 마지막으로 등장하는 인덱스 번호 반환.
  • split() : 문자열을 전달된 표현식에 따라 나눠서 반환.
    ex) ',','/', " "등을 기준으로 분할
  • substr() : 전달된 인덱스 번호와 갯수에 맞춰 문자열에서 추출해서 반환.
  • lenght() : 문자열의 길이를 반환.
  • inEmpty() : 문자열의 길이가 0 이면 true 를 반환, 아니면 false 반환.

참조 사이트
링크텍스트

0개의 댓글