danc
danc*dev
danc
  • 분류 전체보기
    • codestates_BE_bootcamp39
      • 주단위 일기
      • 회고
    • programming
      • JAVA
      • SPRING
      • GENERAL
      • LINUX
      • ALGORITHM
      • ERROR_HANDLING
    • web
      • NETWORK
      • DB
      • HTML
      • CSS
    • kr
    • nz

최근 글

인기 글

태그

  • 코드스테이츠
  • css
  • React에서 Authorization헤더
  • 회고
  • TIL 일기
  • 일기
  • AOP
  • TIL일기
  • 윈도우 11 우분투
  • HTTP
  • 코드스테이츠 백엔드
  • TIL

최근 댓글

티스토리

hELLO · Designed By 정상우.
danc
programming/JAVA

Java - [문자열] String

programming/JAVA

Java - [문자열] String

2022. 5. 4. 17:34

Java에서는 클래스 타입인 String을 사용해서 문자열을 다룬다. 클래스는 그 자체로 타입으로 사용할 수 있고 관련 기능을 한데 묶을 수 있다.

 

String 타입의 선언과 저장은 다음과 같다. 

1.	문자열 리터럴을 대입하는 방법 (* 리터럴 = 문자열 그 자체가 값을 나타내는것")
String 변수명;
변수명 = "이것은문자열";


2. 
String 변수명 = "이것도문자열";


3.	new 연산자로 새 객체를 생성후, 문자열을 대입하는 방법
String 변수명 = new String("이것또한문자열");

 

문자열은 앞에 배운 변수에 값을 직접 저장하는 것과는 달리 약간 다른 방식으로 작동하는데,

문자열이 담겨있는 주소를 참조 하는것이라 이해하는 것이 좋다. 즉 문자열은 Reference Type에 속한다. 

그렇기 때문에 위의 3가지의 선언에서 차이가 있는데,  1번과 2번은 동일한 문자열 리터럴 (문자열 그대로의 값)로 생성된 객체를 참조하기 때문에 비교 연산자로 비교해보면 값이 같다고 나온다. 즉 객체의 주소 값이 동일하다.

반면 3번은 새로운 객체를 따로 만들어 문자열을 저장했기 때문에 1,2의 값과 비교하면 같지 않다 라는 결과가 나온다. 왜냐하면 1,2번의 객체는 동일한 주소 값을 주소 값을 가지지만 3번은 new로 새 객체를 아예 만들었기 때문에 다른 주소 값을 갖기 때문. 

 


 

String class의 대표적 메서드

**외울 필요 없고 이런게 있다 수준으로 넘어가자.. 필요할 때 찾아보는 걸로 **

** 문서 최하단에 모음집 리스트와 출처를 남겨놓았다 **

 

1. charAt( )

해당 문자열 중 특정 인덱스에 해당하는 문자를 return 한다.

해당 문자열의 총 길이보다 큰 값이나 음수 값을 넣으면 Error가 난다. 

더보기
public class main {
    public static void main(String[] args)
    {
        String str = new String("Java");
        System.out.println("문자열 : " + str); // "문자열 : Java"

        System.out.println(str.charAt(0)); // 'J'
        System.out.println(str.charAt(1)); // 'a'
        System.out.println(str.charAt(2)); // 'v'
        System.out.println(str.charAt(3)); // 'a'

        System.out.println("\ncharAt() 메서드 호출 후 문자열 : " + str);
    }
}

문자열 : Java
J
a
v
a

charAt() 메서드 호출 후 문자열 : Java

 

"Java" 문자열 배열은 총 4칸이므로, [0][1][2][3] -> [J][a][v][a]와 같이 문자열이 저장되어 있다 볼 수 있다.
**배열은 항상 0부터 시작한다**

예) str.charAt(인덱스 값)의 형식이므로 인덱스에 3을 넣으면 배열의 3번 칸이기 때문에 a가 출력 

 


2. compareTo( ) 

해당 문자열을 인수로 받은 문자열과 사전 편찬 순으로 대소문자를 구분하여 비교한다.

[문자열이 같으면 0 / 인수로 받은 문자열 보다 작으면 음수 / 인수로 받은 문자열 보다 크면 양수] Return 

대소문자를 구분하지 않으려면 compareToIgnoreCase( ) 메서드 이용 

더보기
public class main {
    public static void main(String[] args)
    {
        String str = new String("abcd");
        System.out.println("문자열 : " + str);
        System.out.println(str.compareTo("bcef"));  		 // -1
        System.out.println(str.compareTo("abcd"));  		 // 0
        System.out.println(str.compareTo("Abcd"));  		 // 32
        System.out.println(str.compareTo("cdef"));  		 // -2
        System.out.println(str.compareToIgnoreCase("Abcd")); 	 // 0
        System.out.println("compareTo() 메서드 호출 후 문자열 : " + str);
    }
}
문자열 : abcd
-1
0
32
-2
0
compareTo() 메서드 호출 후 문자열 : abcd

3. concat( )

해당 문자열 뒤에 인수로 받은 문자열을 추가해서 새로운 문자열을 return 한다. 하지만 새로운 문자열은 해당 메서드에서만 나온다.

인수받은 문자열의 길이가 0이면 해당 문자열을 그대로 return 한다. 

더보기
public class main {
    public static void main(String[] args)
    {
        String str = new String("Java");
        System.out.println("문자열 : " + str);
        System.out.println(str.concat("수업"));
        System.out.println("concat() 메서드 호출 후 문자열 : " + str);
    }
}
문자열 : Java
Java수업
concat() 메서드 호출 후 문자열 : Java

 


 

4. indexOf( )

해당 문자열에서 특정한 문자나 문자열이 처음으로 등장하는 위치의 index를 return 한다.

위치에 존재하지 않을 경우 -1 return

더보기
public class main {
    public static void main(String[] args)
    {
        String str = new String("Oracle Java");
        System.out.println("문자열 : " + str);
        System.out.println(str.indexOf('o'));   //-1 (대소문자 구별 )
        System.out.println(str.indexOf('a'));   // 2
        System.out.println(str.indexOf("Java"));// 7
        System.out.println("indexOf() 메서드 호출 후 원본 문자열 : " + str);
    }
}
문자열 : Oracle Java
-1
2
7
indexOf() 메서드 호출 후 원본 문자열 : Oracle Java

 


5. trim( )

해당 문자열 맨 앞과 맨 뒤에 포함된 모든 공백 문자 제거

더보기
public class main {
    public static void main(String[] args)
    {
        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

 


 

6. toLowerCase( )와 toUpperCase( )

toLowerCase( )는 해당 문자열의 모든 문자를 소문자로, toUpperCase( )는 대문자로 변경한다. 

더보기
public class main {
    public static void main(String[] args)
    {
        String str = new String("Java");
        System.out.println("문자열 : " + str);
        System.out.println(str.toLowerCase());
        System.out.println(str.toUpperCase());
        System.out.println("두 메서드 호출 후 문자열 : " + str);
    }
}
문자열 : Java
java
JAVA
두 메서드 호출 후 문자열 : Java

 

 

Java String Reference

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 

저작자표시 (새창열림)

'programming > JAVA' 카테고리의 다른 글

Java - Type  (0) 2022.05.04
Java - 변수 / 상수 / 타입변환  (0) 2022.05.04
Java - [문자열] StringTokenizer  (0) 2022.05.04
Java - [문자열] StringBuilder / StringBuffer  (0) 2022.05.04
JAVA  (0) 2022.05.04
    'programming/JAVA' 카테고리의 다른 글
    • Java - 변수 / 상수 / 타입변환
    • Java - [문자열] StringTokenizer
    • Java - [문자열] StringBuilder / StringBuffer
    • JAVA
    danc
    danc
    Backend 개발자를 목표로 공부 중 입니다.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.