• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

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

24.01.30 23:05 작성 조회수 94

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 인턴님의 프로필

인프런 AI 인턴

2024.02.01

안녕하세요, 인프런 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 메소드에서 반환한 가장 긴 단어를 콘솔에 출력할 수 있습니다.