JAVA/배열
[java/배열] 메소드 추가하여 사용자 입력값 출력
java나유
2022. 6. 25. 17:54
"동물 이름을 입력해주세요."
* 총 배열 데이터는 5개가 생성됩니다.
* 별도의 메소드에서 해당 사용자가 입력한 값을 리스트로 구성하여
* 출력하세요.
* 예) 사용자가 입력한 형태 : 다람쥐 토끼 사슴 애벌레 강아지
* 결과 예 ) [다람쥐, 토끼, 사슴, 애벌레, 강아지,]
별도의 메소드는 static void로 구현해주었다.
Scanner sc = new Scanner(System.in);
String sum="";
for(int i=0;i<=4;i++) {
System.out.println("동물 이름을 입력해주세요");
String user = sc.next();
sum+=user;
}
sc.close();
ani(sum);
}
static void ani(String name) {
String name2[]=new String[name.length()];
for(int a=0;a<name2.length;a++) {
name2[a]=name;
}
System.out.println(Arrays.toString(name2));
}
}
그런데 위 코드를 실행하면 이런 오류가 발생합니다.

이유는 밑에 코드를 보며설명해보겠습니다.
Scanner sc = new Scanner(System.in);
String sum="";
for(int i=0;i<=4;i++) {
System.out.println("동물 이름을 입력해주세요");
String user = sc.next();
sum+=(user+""); //수정한 부분 빈공간개념인 sum에 ""을 넣어 공백을 줄여주었다.
}
sc.close(); //스캐너 닫기
ani(sum); //ani메소드에 보낼 sum값
}
static void ani(String name) { //name이라는 메소드로 위 sum값을 받음
String name2[]=name.split(""); //split:문자열 또는 숫자열을 특정문자 기준으로 배열을 만들 수 있는 명령어
System.out.println(Arrays.toString(name2));
}
}
해당 코드로 수정하였는데요, 해당 코드로 수정하면 이런 결과값이 출력됩니다.

상기 결과값으로 사용자가 입력한 값이 어떻게 전달되는지 볼 수 있는데요.
sum+=(user+"");에 sum+=(user+",");을 넣어주어 밑에서 split을 하면 어떨까요?-?
참고로 밑에 String name2[]=name.split(" "); 도 ""에서 " "(공백있음)으로 변경해보았습니다.
Scanner sc = new Scanner(System.in);
String sum="";
for(int i=0;i<=4;i++) {
System.out.println("동물 이름을 입력해주세요");
String user = sc.next();
sum+=(user+","); //수정한 부분 빈공간개념인 sum에 ""을 넣어 공백을 줄여주었다.
}
sc.close(); //스캐너 닫기
ani(sum); //ani메소드에 보낼 sum값
}
static void ani(String name) { //name이라는 메소드로 위 sum값을 받음
String name2[]=name.split(" "); //split:문자열 또는 숫자열을 특정문자 기준으로 배열을 만들 수 있는 명령어
System.out.println(Arrays.toString(name2));
}
}
상기 코드를 실행하면 아래와 같은 결과값이 출력됩니다.

728x90