💡length() 메소드
문자 길이 제한
Scanner scan = new Scanner(System.in);
System.out.print("이름: ");
String name = scan.nextLine();
if (name.length() >= 2 && name.length() <= 5) {
System.out.println("올바른 이름입니다.");
} else {
System.out.println("이름을 2~5자 이내로 작성하세요.");
}
입력받아야 하는 문자열에 길이 제한을 둘 때 length()메소드를 사용할 수 있다.
💡trim() 메소드
공백 제거
String txt = " 하나 둘 셋";
System.out.printf("[%s]\n", txt); // [ 하나 둘 셋]
System.out.printf("[%s]\n", txt.trim()); // [하나 둘 셋]
문자열 내의 공백 (Whitespace > 스페이스, 탭, 개행) 문자를 제거한다.
문자열의 좌우(시작과 끝)에 존재하는 공백을 제거한다는 특징이 있으며, 맨 앞의 공백을 사용자가 실수로 입력했다고 판단하여 공백을 제거할 때 사용한다.
💡replace() 메소드
문자열 치환 (바꾸기)
String txt = "안녕하세요. Isaac입니다.";
int index = txt.indexOf("Isaac");
String temp1 = txt.substring(0, index); // 안녕하세요.
String temp2 = txt.substring((index + 5)); // 입니다.
System.out.println(temp1 + "Isaac" + temp2);
System.out.println(txt.replace("Isaac", "Sopia")); // 안녕하세요. Sopia입니다.
replace() 메소드는 문자열의 일부(old)를 다른 문자열(new)로 바꾸는 메소드이다.
substring() 메소드를 이용해 문자열의 일부를 바꿀 수 있지만, replace() 메소드는 이를 훨씬 더 쉽게 만들어준다.
문자열 삭제
String txt = " 하나 둘 셋";
System.out.println(txt2.replace(" ", "")); // 하나둘셋
꼭 공백을 제거할 때만 replace() 메소드를 사용하는 것은 아니다.
replace로 무언가를 삭제하고 싶으면 찾아서 ""로 교체하면 된다.
💡split() 메소드
문자열 분리
String name = "가가,나나,다다,라라,마마";
String[] temp = name.split(",");
for (int i=0; i<temp.length; i++) {
System.out.println(temp[i]);
}
/*
가가
나나
다다
라라
마마
*/
split() 메소드는 구분자를 기준으로 쪼개는 메소드로, 하나의 문자열을 조각내어 모을 수 있는 게 문자열 뿐이므로, 문자열을 사용한다.
String name = "가가,나나,다다,라라,마마";
String temp = name.split("다다");
for (int i=0; i<temp.length; i++) {
System.out.println(temp[i]);
}
/*
가가,나나,
,라라,마마
*/
split결과 구분자는 사라지게 된다.
','가 아닌 문자열로 구분자를 설정할 수 있으며, 이 경우 해당 문자열을 기준으로 기존의 문자열이 2개로 split된다.