Java의 문자열 관련 클래스인 String 메소드 정리 글입니다.

참고 : CharSequence는 인터페이스이며, String 클래스는 CharSequence를 구현한 구현체입니다.


char charAt(int index)
  • 문자열의 Index번째 문자를 반환한다.
String str = "abcde";
char c = str.charAt(1); // 'b'


int indexOf(int ch)
int indexOf(int ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
  • 문자열의 첫번째 인덱스를 기준으로 마지막 인덱스까지 검색하여 특정 문자가 위치한 인덱스를 반환한다. 
  • fromIndex는 검색 범위를 지정한다.
    • fromIndex가 2일 경우 2 ~ 마지막 문자 인덱스 조회
  • 찾지 못하면 -1을 반환한다. 
String str = "abcdef";
System.out.println(str.indexOf("c")); // 2
System.out.println(str.indexOf("c", 2)); // 2
System.out.println(str.indexOf("c", 3)); // -1


int lastIndexOf(int ch)
int lastIndexOf(int ch, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)

  • 문자열의 마지막 인덱스를 기준으로 첫번째 인덱스까지 검색하여 특정 문자가 위치한 인덱스를 반환다.
  • fromIndex는 검색 범위를 지정한다.
    • fromIndex가 6일 경우 0 ~ 6 인덱스 조회
  • 찾지 못하면 -1을 반환한다.
String str = "abcdcef";
System.out.println(str.lastIndexOf("c")); // 2
System.out.println(str.lastIndexOf("c", 6)); // 2
System.out.println(str.lastIndexOf("c", 1)); // -1


String substring(int beginIndex) 
String substring(int beginIndex, int endIndex)
  • beginIndex부터 endIndex -1 사이에 위치한 String을 반환한다.
String str = "abcdcef";
System.out.println(str.substring(3)); // dcef
System.out.println(str.substring(1, 3)); // bc


String replace(String target, String replacement) 
String replaceAll(String regex, String replacement)
String replaceFirst(String regex, String replacement)
  • 특정 문자열을 검색해 특정 문자열로 변경한다.
  • replace 메소드와 replaceAll 메소드의 차이는 정규표현식의 사용 가능 유무이다.
String str = "abcdefbg";
System.out.println(str.replace("a", "apple")); // applebcdefbg
System.out.println(str.replaceAll("[b,a]", "X")); // XXcdefXg
System.out.println(str.replaceFirst("[b,a]", "X")); // Xbcdefbg


String concat(String str)
  • 두개의 문자열을 합쳐서 반환한다.
String str = "I am";
System.out.println(str.concat(" a boy"));//I am a boy


boolean isEmpty()
  • 문자열이 비어있는지 확인한다.
String str = null;
System.out.println(str.isEmpty()); // true


String[] split(String regex)
String[] split(String regex, int limit)
  • 문자열을 특정 문자를 기준으로 나눈다.
  • 정규식을 사용하여 나눌 수 있다.
String str = "1 2 3 4 5 6 7";
str.split(" "); // [1, 2, 3, 4, 5, 6, 7]
str.split(" ", 2); //[1, 2 3 4 5 6 7]

boolean contains(CharSequence s) 
  • 특정 문자가 포함되어있는지 검색한다.
String str = "i am a boy !";
System.out.println(str.contains("bo")); //true

boolean startsWith(String prefix) 
boolean startsWith(String prefix, int toffset)
  • 특정 문자로 시작하는지 검색한다.
  • toffset 파라메터를 이용해 시작위치를 조정할 수 있다.
String str = "i am a boy !";
System.out.println(str.startsWith("boy")); //false
System.out.println(str.startsWith("boy", 7)); //true

boolean endsWith(String suffix)
  • 특정 문자로 끝나는지 검색한다.
String str = "String.java";
System.out.println(str.endsWith(".java")); //true
System.out.println(str.endsWith(".class")); //false

boolean matches(String regex)
  • 정규식이 만족되는 문자열인지 확인한다.
String str = "12345";
System.out.println(str.matches("(^[0-9]*$)")); //true , 문자열이 모두 숫자인지 확인한다.

char[] toCharArray()
  • 문자열의 각 문자를 char[]에 담아 반환한다.
String str = "korea";
str.toCharArray();//[k, o, r, e, a]

String toUpperCase()
String toLowerCase()
  • 모든 문자열을 대문자/소문자(Upper/Lower)로 변경한다.
String str = "KoreA";
System.out.println(str.toUpperCase()); //KOREA
System.out.println(str.toLowerCase()); //korea

String trim()
  • 시작과 끝에 존재하는 공백을 제거한다.
  • 중간에 있는 공백은 제거하지 않는다.
String str = "   K ore A    ";
System.out.println(str.trim()); //K ore A

int length() 
  • 문자열의 개수를 반환한다.
String str = "Korea";
System.out.println(str.length()); //5

byte[] getBytes(Charset charset)
byte[] getBytes()
  • 문자열을 특정 charset으로 Encoding해준다.
  • charset을 넘기지 않으면 기본 플랫폼 charset으로 Encoding된다.

static String format(String format, Object... args)
  • 문자열을 정의된 format대로 치환하여 반환한다.
String str = "log-%s.%s";
System.out.println(String.format(str, "20191224", "txt")); //log-20191224.txt

도움이 되셨다면 추천 부탁드립니다.

모두 좋은 하루 되세요.

+ Recent posts