JUST GO

[클래스] String 본문

Java/학습내용

[클래스] String

root_go 2022. 10. 19. 13:45

String 클래스 (java.lang.String)

  • String(java.lang.String) 클래스는 참조 타입으로, Java에서 문자열 타입을 사용하거나 활용하기 위해 사용한다. 참조타입이지만 쌍 따옴표를 이용하여 리터럴(Literal)처럼 사용할 수 있도록 특별히 조치되어 있다.

 

  • 비정적 메서드(객체 메서드)
    • charAt(int i) : 호출 대상이되는 문자열 i 번째에 있는 문자를 반환한다.
Stirng msg = "Hello World";
char c = msg.charAt(0);
System.out.println( c );

// H 가 출력됨

 

  • concat(String s) : 호출 대상이되는 문자열에 s 문자열을 합쳐 새로운 문자열 객체를 반환한다. 체인 메서드 (Chained Method)의 일종이다.
String msg = "Hello"
        .concat(" World! ")
        .concat("Mr.")
        .concat("Simpson?");
System.out.println(msg);
// "Hello World! Mr.simpson?"
 
    • contains(CharSequence cs) : 호출 대상이 되는 문자열이 매개 변수 cs 를 포함하고 있는지의 여부를 반환한다.
System.out.println("Nice to meet you.".contains("Nice")); // false
 
    • endsWith(String s) : 호출 대상이 되는 문자열이 매개 변수 s 의 내용으로 끝나는가의 여부를 반환한다.
System.out.println("Hello World".endsWith("World")); // true
System.out.println("Hello World".endsWith("Hello")); // false
 
    • equlas(Object o) : 호출 대상이 되는 문자열의 내용이 매개 변수 o의 타입이 문자열이고 그 내용이 동일한가의 여부를 반환한다. 대소문자를 구분함에 유의한다.
System.out.println("Hello".equals("Hello")); // true
System.out.println("Hello".equals("hello")); // false
 
    • equalsIgnoreCase(String s) : 위 equals(...) 메서드와 유사하나 대소문자를 구분하지 않는다.
System.out.println("Hello".equalsIgnoreCase("Hello")); // true
System.out.println("Hello".equalsIgnoreCase("hello")); // true
 
    • length() : 호출 대상이 되는 문자열의 내용의 정수인 길이를 반환한다. 바이트는 어쩌고는 관계 없이 단순히 글자의 개수를 반환한다.
System.out.println("아몬드봉봉".length()); // 5
 
    • matches(String r) : 호출 대상이 되는 문자열의 내용이 주어진 매개변수인 정규식 r 을 만족하는가의 여부를 반환한다.
if ("010-1234-5678".matches("^(010)-([0-9]{4})-([0-9]{4})$")) {
    System.out.println("올바른 연락처입니다.");
} else {
    System.out.println("올바르지 않은 연락처입니다!");
}
 
    • repeat(int t) : 호출 대상이 되는 문자열의 내용을 t번 반복하여 새로운 문자열을 반환한다.
System.out.println("아몬드봉봉").repeat(10); // "아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉아몬드봉봉"
 
    • replace(CharSequence f, CharSequence t) : 호출 대상이 되는 문자열에서 f를 찾아 t로 바꾼다.
System.out.println("010-1234-5678").replace("-",""));  // "01012345678"
 
    • replaceAll(String r, String t) : 호출 대상이 되는 문자열에서 정규식 r에 일치하는 대상을 t로 바꾼다.(어려움)
System.out.println("김갑수 010-1234-5678".replaceAll("[0-9]", "*"));
// 김갑수 "***-****-****"
 
    • split(String s) : 호출 대상이 되는 문자열의 내용에 대해 매개 변수 s 로 잘라낸 문자열 배열을 반환한다.
String phone = "010-1234-5678";
String[] phoneArray = phone.split("-");
System.out.println(phoneArray[0]); // "010"
System.out.println(phoneArray[1]); // "1234"
System.out.println(phoneArray[2]); // "5678"
 
    • startsWith(String s) : 호출 대상이 되는 문자열의 내용이 매개 변수 s 의 내용으로 시작하는가의 여부를 반환한다.
System.out.println("Hello World".startsWith("World")); // false
System.out.println("Hello World".startsWith("hello")); // true
 
    • Substring(int f, int t) : 호출 대상이 되는 문자열의 내용에 대해 f 번째 부터 t 앞 번째 까지의 문자열을 잘라 새로운 문자열로 반환한다. t 를 생략할 경우 f 부터 문자열 끝까지를 자른다.
String msg = "Hello World!";
System.out.println(msg.substring(0, 5)); // "Hello"
System.out.println(msg.substring(6)); // "World!"
 
    • toCharArray() : 호출 대상이 되는 문자열의 각 문자를 담은 문자 배열(char[])을 반환한다.
String msg = "Hello World!";
char[] msgArray = msg.toCharArray();
System.out.println(msgArray[0]); // 'H'
 
    • toLowerCase() : 호출 대상이 되는 문자열이 가진 영대문자를 모두 소문자로 바꾼 새로운 문자열을 반환한다.
    • toUpperCase() : 호출 대상이 되는 문자열이 가진 영소문자를 모두 대문자로 바꾼 새로운 문자열을 반환한다.
    • trim() : 호출 대상이 되는 문자열의 내용에서 좌 우 연속된 공백을 제거한 새로운 문자열을 반환한다.
String msg = " Hello World! ";
System.out.println(msg); // "Hello World!"
 
  • 정적 메서드
    • format(String f, ? v, ...) : 주어진 문자열 형식 f에 맞게 값 v (들)을 순차적으로 대입하여 새로운 문자열을 반환한다.
String msg = String.format("안녕? %s, %d살이야.", "김갑수", 88);
System.out.println( msg ); // "안녕? 김갑수, 88살이야."
 
  • 인자
    • %s : 해당 위치에 문자열을 대입한다.
      • %xs : 어떤 문자열에 대해 x자리 만큼 공간을 확보, 오른쪽 정렬한다.
      • %-xs : 어떤 문자열에 대해 x자리 만큼 공간을 확보, 왼쪽 정렬한다.
      • %.xs : 어떤 문자열에 대해 x 길이 만큼만 자른다.

 

    • %d : 해당 위치에 정수(byte, short, int, long)를 대입한다.
      • %,d : 천의 자리에 대해 쉼표(,)를 적용한다.
      • %xd : 어떤 숫자에 대해 x자리 만큼의 공간을 확보, 오른쪽 정렬한다.
      • %-xd : 어떤 숫자에 대해 x자리 만큼의 공간을 확보, 왼쪽 정렬한다.
      • %, xd : %xd 의 꼴에서 천의 자리에 대해 쉼표를 적용한다. 단, 길이 x는 쉼표에 의한 길이를 포함함으로 유의한다.

 

    • %f : 해당 위치에 소수(float, double)를 대입한다.

 

    • join(CharSequence d, CharSequence e, ...) : 한 개 이상의 CharSequence 인 e (들)에 대해 d로 이어 붙인다.
System.out.println(String.join("-", "010", "1234", "5678")); // "010-1234-5678"
 
    • valueOf(byte|short|int|long|float|double|boolean|char v) : 전달받은 매개변수 v를 문자열로 전환하여 반환한다.
int someNumber = 17;
String numberStr = someNumber; // 안 됨
String numberStr = String.valueOf(someNumber);
system.out.println(numberStr); // "17"

 

'Java > 학습내용' 카테고리의 다른 글

[공통] 인터페이스  (0) 2022.10.19
[클래스] Math  (0) 2022.10.19
[공통] 자료구조  (0) 2022.10.19
[공통] 구현  (0) 2022.10.14
[공통] 다형성  (0) 2022.10.13