뭉
노재능 록리형 개발자
뭉
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • Java (18)
      • Grammer (14)
      • Problem Solving (4)
    • JavaScript (0)
      • Grammer (0)
      • jQuery (0)
    • Spring (0)
    • DB (9)
      • SQL (6)
      • JPA (3)
    • Storage (0)
    • ETC (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
뭉

노재능 록리형 개발자

String Class (2) - 주요 메서드
Java/Grammer

String Class (2) - 주요 메서드

2022. 3. 27. 03:03

이번 게시글에선 주로 사용하는 문자열 관련 메서드를 알아봅시다.

주의할 점은 String 객체는 불변이기 때문에 (Strring Class (1) - String Pool과 Immutable 참고) 해당 메서드들이 객체가 가지고 있는 값을 변경할 수 없다는 점을 알아두셔야 합니다.

 

문자열과 숫자 간 형 변환

우선 형변환부터 알아보겠습니다. 여기서 알아볼 형변환은 숫자와 문자열 간 형 변환입니다.

//int => String
int number1 = 0;
String text1 = String.valueOf(number1);
System.out.println(text1);    //0

//String => int
String text2A = "10";
String text2B = "hello";
int number2A = Integer.valueOf(text2A);
int number2B = Integer.valueOf(text2B);        //numberBerFormatException 발생
System.out.println(text2A);                   //10             

//String + int인 경우 문자열로 자동형변환
System.out.println("my height is " + 178);   //my height is 178

예시에는 정수에만 한정되어 있지만 다른 숫자 타입인 long, float 등도 사용가능합니다.

valueOf 말고 parseXXX와 같은 메서드들도 존재하지만 타입에 따라 메서드 이름이 계속 바뀌기 때문에 상당히 번거롭습니다.

엄연히 말하면 다른 차이점도 있지만 컴파일러가 알아서 이를 처리해주기 때문에 사용하는 입장에서는 큰 차이가 없습니다. 이에 따라 형변환 시에는 valueOf 메서드를 사용하시면 되겠습니다.

 

주요 메서드

이제 자주 사용되는 문자열 메서드를 알아보도록 합시다. 한꺼번에 나열하면 정신없으니 "반환값이 문자열인 메서드"부터 나열하겠습니다.

//대소문자로 반환
String text1 = "Hello";
System.out.println(text1.toUpperCase());     //HELLO
System.out.println(text1.toLowerCase());     //hello

//공백 제거
String text2 = " Hello ";
System.out.println(text2.trim());            //Hello

//하위 문자열 반환
String text3 = "Hello";
System.out.println(text3.substring(2));      //llo
System.out.println(text3.substring(0, 2));   //He
System.out.println(text3.substring(100));    //StringIndexOutOfBoundsException 발생

//특정 문자열을 대체해 반환
String text5 = "Hello World";
System.out.println(text5.replace("Hello", "Bye"));   //Bye World

다음은 "반환값이 문자열이 아닌 메서드"들 목록입니다.

//문자열 나누어 배열로 반환
String text6 = "Hello World";
String[] result = text6.split(" ");
System.out.println(Arrays.toString(result));    //[Hello, World]

//특정 문자열의 인덱스 반환
String text7 = "Hello World";
System.out.println(text7.indexOf("Hello"));        //0
System.out.println(text7.indexOf("#"));          //-1
System.out.println(text7.lastIndexOf("o"));      //7
System.out.println(text7.lastIndexOf("#"));      //-1

//문자열의 길이 반환
String text = "Hello world";
System.out.println(text.length());   //11

//하위 문자 반환
String text4 = "hello";
System.out.println(text4.charAt(0));      //h
System.out.println(text4.charAt(100));    //StringIndexOutOfBoundsException 발생
System.out.println(text4.charAt(text4.length() - 1));   //마지막 문자 d 반환

다음은 "반환값을 조건식으로 사용할수 있는 메서드"들 목록입니다.

//빈 문자열(길이가 0) 조건
String text8A = "";
String text8B = " ";
String text8C = "Hello";
System.out.println(text8A.isEmpty());        //true
System.out.println(text8B.isEmpty());        //false
System.out.println(text8C.isEmpty());        //false

//특정 문자열로 시작되거나 끝나는 조건
String text9 = "Hello";
System.out.println(text9.startsWith("H"));   //true
System.out.println(text9.startsWith("#"));   //false
System.out.println(text9.endsWith("o"));     //true
System.out.println(text9.endsWith("#"));     //false

//특정 문자열이 포함되는 조건
String text10 = "Hello World";
System.out.println(text10.contains("Hello")); //true
System.out.println(text10.contains("Bye"));   //false

 

그 외 정적 메서드

String.join과 String.format 메서드가 있으며 모두 반환값이 String입니다.

//문자열 사이 특정 문자열 결합
String[] texts = {"apple", "banana", "grape"};
System.out.println(String.join(",", texts));    //apple,banana,grape
System.out.println(String.join(",", "apple", "banana", "grape"));    //apple,banana,grape

//문자열 형식 지정
String text = "Seven";
int num = 7;
System.out.println(String.format("숫자 : %d, 문자 %s", num, text));    //숫자 : 7, 문자 Seven

'Java > Grammer' 카테고리의 다른 글

Simple Data Structure (1) - 공통 메서드  (0) 2022.04.23
String Class (3) - 정규표현식  (0) 2022.04.02
String Class (1) - Immutable과 StringBuilder/StringBuffer  (0) 2022.03.26
추상클래스와 인터페이스의 차이  (0) 2022.01.16
Call by value  (0) 2021.12.28
    'Java/Grammer' 카테고리의 다른 글
    • Simple Data Structure (1) - 공통 메서드
    • String Class (3) - 정규표현식
    • String Class (1) - Immutable과 StringBuilder/StringBuffer
    • 추상클래스와 인터페이스의 차이
    뭉
    뭉
    노재능 록리형 개발자

    티스토리툴바