한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.
첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다.
it is time to study
study
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StringEx_3 {
public String solution(String input) {
String answer = "";
int num = 0;
int pos;
// // split 사용
// // 띄어쓰기 기준으로 문자열 분할
// String[] s = input.split(" ");
// for (String str : s) {
// int length = str.length();
// if (length > num) {
// num = length;
// answer = str;
// }
// }
// indexOf 사용
// 띄어쓰기가 있는 인덱스를 찾고, 기준으로 분할
while ((pos = input.indexOf(" ")) != -1) {
String tmp = input.substring(0, pos);
int length = tmp.length();
if (length > num) {
num = length;
answer = tmp;
}
// 문장 조정
input = input.substring(pos+1);
}
// 마지막 단어
if (input.length() > num) {
answer = input;
}
return answer;
}
public static void main(String[] args) throws IOException {
StringEx_3 T = new StringEx_3();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
System.out.println(T.solution(input));
}
}
split(), indexOf(), substring()을 사용 예시를 통해 직접 사용해보며 익숙해지는 시간을 가졌다.
좀 더 많은 연습을 통해 익숙해져야 함을 느꼈다..