Java의 문자열 관련 클래스인 String 메소드 정리 글입니다.
참고 : CharSequence는 인터페이스이며, String 클래스는 CharSequence를 구현한 구현체입니다.
char charAt(int 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
도움이 되셨다면 추천 부탁드립니다.
모두 좋은 하루 되세요.