String(문자열) 다루기 - 0103. 문장 속 단어
public static String solution(String str) {
String answer = "";
String[] words = str.split(" ");
for(String s : words) {
if(answer.length() < s.length()) answer = s;
}
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(solution(str));
}
public static String soulution(String str) {
String answer = "";
int pos;
while((pos = str.indexOf(" ")) != -1) {
String subStr = str.substring(0, pos);
if(answer.length() < subStr.length()) {
answer = subStr;
}
str = str.substring(pos + 1);
}
return str.length() > answer.length() ? str : answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(solution(str));
}
}
나의 풀이의 경우 String
클래스의 split
메소드를 이용하였다.
String[] words = str.split(" ");
// 공백을 기준으로 문자열을 자른다.
while((pos = str.indexOf(" ")) != -1) { ... }
// index를 반환하며, 찾지 못할 경우 -1을 반환한다.
이 때 while
문의 반복 조건식에 주의하자. 반복문 종료 후 return
전에
마지막 단어를 가진 str
과 현재 가장 긴 단어를 가진 answer
의 길이를 비교해야한다.