Programming/Java

[Java] 배열 메소드 2: length(), trim(), replace(), split()

Isaac S. Lee 2023. 7. 28. 11:01

💡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된다.