한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다.
문장은 영어 알파벳으로만 구성되어 있습니다.
첫 줄에 가장 긴 단어를 출력한다.
가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다.
it is time to study
study
split()을 이용한 풀이
import java.util.Scanner;
class Main {
public String solution(String str) {
String answer = "";
int m = 0;
String[] s = str.split(" ");
for(String x : s) {
int len = x.length();
if (len > m) {
m = len;
answer = x;
}
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
indexOf()와 substring()을 이용한 풀이
import java.util.Scanner;
class Main {
public String solution(String str) {
String answer = "";
int m = 0;
int pos;
while((pos = str.indexOf(' ')) != -1) {
String tmp = str.substring(0, pos);
int len = tmp.length();
if (len > m) {
m = len;
answer = tmp;
}
str = str.substring(pos+1);
}
if (str.length() > m) answer = str;
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
String[] s = str.split(" ") -> 문자열을 잘라서 배열로 변환
str.indexOf(" ") -> 문자가 처음 발견되는 인덱스를 반환, 만약 찾지 못했을 경우 -1을 반환
str.substring(3) -> 문자열의 3번째부터 마지막까지 문자 추출
str.substring(0, 3) -> 문자열의 0번째부터 3번째 앞 문자까지 추출