안녕하세요. 최근 스프링에 푹 빠져사는 개발자입니다. 스프링을 개발하다가 자바를 많이 사용해봤지만 이번 기회에 제대로 문법 정리를 하려고 합니다. 오늘은 가장 기본이 되는 자바의 문자열 함수들을 간단하게 정리하려고 합니다.
문자열 비교 함수
String a = "the snow glows white on the mountain to night test";
String b = a;
String c = "test";
String d = "Hello, this is wonderful world";
String e = "test";
String f = new String("tefdnosafnodsanfo");
String g = "heytest";
먼저 간단하게 테스트 문자열 변수들을 선언 및 초기화 시켜두었습니다. 문자열 비교함수는 무엇이 있을까요?
// 문자열 비교 함수
System.out.println(a.equals(b)); // true
System.out.println(a==b); // true
System.out.println(c.equals(e)); // true
System.out.println(c==e); // true
문자열 비교 함수들은 주로 if문에서 많이 활용됩니다.
문자열 포함 확인 함수
// 문자열 포함 여부 함수
System.out.println(a.contains(c)); // true
System.out.println(g.contains(c)); // true
System.out.println(e.contains(c)); // true
System.out.println(a.indexOf(c)); // 46
System.out.println(a.matches(",*[0-9]].*")); //false
포함여부 또한 if 문에서 문자열을 체크할 때 많이 사용하는데요. 가끔 indexOf 함수로 해당 단어의 위치 인덱스를 가지고 오는 경우도 있습니다. 정규 표현식으로 원하는 문자열 포맷이 맞는지를 검사하기도 하죠.
문자열 길이 함수
System.out.println(a.length()); // 50
문자열 길이 함수는 정말 많이 사용하죠?
문자열 잘라내기 함수
// 문자열 잘라내기 함수
System.out.println(a.substring(3, 7)); //sno
문자열 잘라내기 함수는 특정 부분을 추출할 때 사용합니다. 저는 사실 많이 사용한 적은 없는 것 같습니다.
문자열 교환 함수
// 문자열 교환 함수
System.out.println(f.replace("f",".")); //te.dnosa.nodsan.o
문자열 교환 함수는 은근히 사용하는 곳이 많은 것 같습니다. 뭐라 설명을 못하겠네요.
문자열 지정한 문자를 기준으로 나누기(배열로)
// 지정한 문자를 기준으로 문자열 나누기
for (String s : a.split(" ")) {
System.out.println("s = " + s);
// the
// snow ......
}
문자열을 배열로 바꾸는 상황은 은근히 많이 나옵니다. split이 정말 편한 함수인 것 같기는 합니다..