강의로 돌아가기
-

main에서 System.out.println()을 써서 콘솔창에 표시하고 싶은데 어떻게 하나요?

StringBufferExam 클래스에서 리턴한 값을 메인에서 출력하고 싶습니다.

그런데 에러가 뜨면서 안된다고 나오네요;;;

어떻게 하면 되나요?

작성중인 코드―StringBufferExam.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Random;

public class StringBufferExam{
    public String randomName(){
        StringBuffer sb = new StringBuffer();
        String[] firstNames = {"Tod", "John", "Michael"};
        String[] lastNames = {"Smith", "Brown", "Davis"};

            //0~3 사이의 임의의 숫자를 골라서
            int random1 = new Random().nextInt(3);
            //랜덤하게 이름을 뽑는다.
            String firstName = firstNames[random1];


            //0~3 사이의 임의의 숫자를 골라서
            int random2 = new Random().nextInt(3);
            //랜덤하게 성을 뽑는다.
            String lastName = lastNames[random2];

            //sb에 이름(fistName) 공백(" ") 성(lastname) 순으로 append해 보세요.
            //단 메소드 체이닝을 이용해야 합니다.
         String sb1 = new StringBuffer().append(firstName).append(" ").append(lastName).toString();
            return sb1;
          }
  public static void main(String[]args){
   //System.out.println(sb1);
  }

}
1 개의 답변
-

main에 주석처리된 부분에 주석을 제거하면 에러가 발생한다는 말씀인것 같습니다.
에러가 발생하는 이유는 sb1이 정의되지 않았기 때문입니다.

main에서 randomName()의 결과를 보시려면

  public static void main(String[]args){
    StringBufferExam exam = new StringBufferExam();
    String sb1 = exam.randomName();
    System.out.println(sb1);
  }

와 같이 클래스를 생성해, 메소드를 호출하셔야 합니다.

  • 김단세
    안되는데용 ㅠㅠ 김단세 2018.04.24 16:44
  • Taemin1021
    위 코드로 하면 잘 돼요 // 또는 randomName()메서드를 public static String randomName()으로 변경해도 돼요 Taemin1021 2019.01.15 23:41
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.