공백이 한 칸일 때
간단하게 split(" ")을 사용하면 분리할 수 있다.
class Solution {
public String[] solution(String my_string) {
String[] answer = my_string.split(" ");
return answer;
}
}
//입력 > "i love you"
//출력 > ["i", "love", "you"]
공백이 두 칸 이상 일 때
공백이 두 칸 이상 일 때는 split(" ")으로는 분리 할 수 없다.
왜냐하면 이 경우에는 split 메서드가 문자열
을 공백문자(space) 기분으로 분할하려고 하는데, 문자열 안에 연속된 공백이 여러개 있는 경우, 각 연속된 공백은 각각의 공백 문자로 간주되어 결과로 나오는 배열에는 빈 문자열(" ")도 포함되기 때문이다.
따라서 공백이 두 칸 이상일 경우에는 아래와 같이 사용하여 문자열을 분리할 수 있다.
.trim().split("\\s+")
정규표현식 \\s+는 하나 이상의 공백 문자를 나타낸다.
따라서 연속된 공백 문자가 하나의 공백 문자로 간주되어 빈 문자열은 배열에 포함되지 않고 문자열을 분리할 수 있다.
또한, trim() 메서드를 사용하는 이유는 입력 문자열의 앞 뒤의 불필요한 공백을 제거하기 위함이다.
만약 trim() 메서드를 사용하지 않고 split("\\s+")를 사용하면 입력 문자열의 앞뒤에 공백이 있는 경우 그 공백도 단어로 취급되어 배열에 포함된다. 따라서 공백을 전부 뺀 문자열만을 분리하기 위해서는 trim()을 사용해 앞뒤 문자열의 공백을 제거해주는 작업이 필요하다.
class Solution {
public String[] solution(String my_string) {
String[] answer = my_string.split("\\s+");
return answer;
}
}
//입력값 > " i love you"
//기댓값 > ["i", "love", "you"]
'Language > Java' 카테고리의 다른 글
[Java] 접두사, 접미사인지 확인 / startsWith(), endsWith() (0) | 2023.11.05 |
---|---|
[Java] 문자열을 숫자로 변환 / Integer.parseInt(), Interger.valueOf() (0) | 2023.11.04 |
[Java] 문자열 소문자, 대문자로 변환 / toLowerCase(), toUpperCase() (0) | 2023.11.02 |
[Java] 문자 포함 여부 확인 / contains() (0) | 2023.11.01 |
[Java] char 배열을 문자열로 변환하기 / String 생성자, String.valueOf(), StringBuilder, Stream (0) | 2023.10.21 |