땃지
ing
땃지
전체 방문자
오늘
어제
  • 분류 전체보기 (100)
    • 공부 (37)
      • Java (4)
      • Spring Boot (4)
      • 자료구조 (4)
      • CS (18)
      • JSP (6)
      • Git (1)
    • 문제 해결 (60)
      • 백준 (51)
      • 프로그래머스 (9)
    • 프로젝트 (3)
      • 당신의 안목 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Contact

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
땃지
공부/Java

문자열 메소드 (java.lang.String)

2021. 9. 24. 17:32

지금까지 문자열을 다루고, 문자열에 속한 문자들을 다룰 때 주로 charAt() 메소드를 이용하여 코드를 작성했다.

하지만 charAt()을 사용하면서 반복문도 함께 사용되고 코드가 길어지는 것 같아

문자열을 효율적으로 다룰 다른 메소드들을 공부해보았다.


java.lang.String 클래스의 메소드

1. charAt(i)

i 번째의 문자 반환

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";				
		System.out.println(a.charAt(2));  //l 출력
	}

}

2. equals()

문자열 비교 후 같다면 true, 다르면 false 반환

대소문자 구분

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
		String b = "Hello World";
		String c = "Goodbye World";
		
		System.out.println(a.equals(b));  //true
		System.out.println(a.equals(c));  //false
	}

}

3. equalsIgnoreCase()

equals()와 같이 문자열을 비교하지만 대소문자 구분하지 않음


4. length()

문자열의 길이 반환

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
				
		System.out.println(a.length());  //11
	}

}

5. trim()

양 끝에 공백이 있다면 제거하여 새로운 문자열 반환

기존의 문자열을 수정하는 것이 아니라 새로운 문자열 인스턴스 생성

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "   Hello World   ";
				
		System.out.println(a.trim());  //"Hello World"
	}

}

6. indexOf(st, i)

문자열에서 특정문자 또는 특정문자열 st가 시작되는 인덱스 반환 (문자열에 없다면 -1 반환)

인덱스 i가 없으면 문자열의 가장 처음부터 검색, 인덱스 i가 있다면 인덱스 i부터 검색

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
				
		System.out.println(a.indexOf("H"));  //0
		System.out.println(a.indexOf("H", 5));  //-1
		System.out.println(a.indexOf("World")); //6
	}

}

7. lastIndexOf()

indexOf()와 같이 문자열 검색하지만 문자열의 뒤에서부터 검색


8. startWith() / endWith()

문자열의 시작 / 끝이 해당 문자와 일치하는지 확인

대소문자 구분

일치하면 true 일치하지 않으면 false 반환 (boolean 형)

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
				
		System.out.println(a.startsWith("H"));  //true
		System.out.println(a.endsWith("D"));  //false
	}

}

9. replace() / replaceAll()

특정 문자열 교체

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "aaabbbcccabcaaabbbabcccc";
				
		System.out.println(a.replace("abc", "얍"));  //aaabbbccc얍aaabbb얍ccc
		System.out.println(a.replaceAll("[abc]", "얍"));  //얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍얍
	}

}

replace()와 replaceAll()의 차이는 위의 예제코드에서 확인 가능하다.

replace()는 정규식 사용이 불가능하고 특정 문자열만을 변환한다.

"abc"라는 문자열을 "얍"이라는 문자열로 변환하고자 할 때 문자열 내에 "abc"를 이루고 있는 문자열부분만을 교체한다.

replaceAll() 은 정규식 사용으로 문자열에 있는 모든 문자변환이 가능하다.

"[abc]"의 경우 문자열 내의 모든 a, b, c 를 따로 교체대상으로 인식한다.


10. split()

문자열을 구분자를 기준으로 구분하여 배열 생성

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "a aa aaa aaaa aaaaa";
		
		String b[] = a.split(" ");  //공백을 기준으로 나누어 배열 생성
		for(int i=0;i<b.length;i++) {
			System.out.println(b[i]);
		}
	}

}

[출력]

a

aa

aaa

aaaa

aaaaa


11. substring(m, n)

인덱스 m부터 n까지의 문자열 반환

시작 인덱스만 제공 시 시작인덱스~문자열 끝까지

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
		
		System.out.println(a.substring(4, 8));  //o Wo
		System.out.println(a.substring(5));  // World
		
	}

}

12. toLowerCase() / toUpperCase()

문자열을 모두 소문자 / 대문자로 변환

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
		
		System.out.println(a.toLowerCase());  //hello world
		System.out.println(a.toUpperCase());  //HELLO WORLD
	}

}

13. valueOf(boolean/int/double/char)

다른 자료형들을 받아 String형으로 변환


14. isEmpty()

문자열 길이가 0이면 true, 0이 아니면 false 반환

package java_practice;

public class StringMethod {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "Hello World";
		String b = "";
		
		System.out.println(a.isEmpty());  //false
		System.out.println(b.isEmpty());  //true
	}

}
저작자표시 비영리 변경금지 (새창열림)
    '공부/Java' 카테고리의 다른 글
    • IntelliJ에서 src 폴더 인식하지 못하는 문제
    • 자바 문자열 비교 / == 연산자와 equals() 차이
    • 자바의 입출력
    땃지
    땃지

    티스토리툴바