인프런 커뮤니티 질문&답변

코코님의 프로필 이미지
코코

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

3. 문장 속 단어(indexOf(), substring())

split 사용 강의 중 질문_return 값에 answer가 안담깁니다.

해결된 질문

작성

·

263

0

package basic;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class longWords_split {
    public String solution(String str){
        String answer =" ";
        int m = Integer.MIN_VALUE;
        String[] s = str.split(" ");
        for(String x: s){
            int len = x.length();
            if(len > m) {
                m = len;
                answer = x;
            }
        }
        // System.out.println(answer); 
        return answer;
    }
    public static void main(String[] arg) throws IOException {
        longWords_split T = new longWords_split();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        T.solution(input);
    }
}

이 코드에서 System.out.println(answer); 로 확인하면 가장 긴 단어가 출력되는데, return answer 를 받았을때 값이 아무 것도 안나옵니다 (공백출력) 원인을 못찾고 헤매고 있습니다. ㅠㅜ 조언 부탁드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

해당 코드에서 main 메서드에서 T.solution(input);을 호출하셨을 때, 해당 메서드는 가장 긴 단어를 찾아 answer에 할당하고 이를 반환하지만, 반환된 값에 대한 처리를 해주지 않아서 결과를 볼 수 없습니다. returnanswer를 화면에 출력하려면 main 메서드에서 solution 메서드 호출 시 반환값을 System.out.println을 이용해 출력해야 합니다. 다음과 같이 코드를 수정하시면 됩니다.

public static void main(String[] arg) throws IOException {
    longWords_split T = new longWords_split();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input = br.readLine();
    // solution 메서드로부터 반환받은 값을 출력
    System.out.println(T.solution(input));
}

이렇게 수정하시면 solution 메소드에서 반환한 가장 긴 단어를 콘솔에 출력할 수 있습니다.

코코님의 프로필 이미지
코코

작성한 질문수

질문하기