본문 바로가기
JAVA/배열

[java/배열] 메소드 추가하여 사용자 입력값 출력

by java나유 2022. 6. 25.

"동물 이름을 입력해주세요."
 * 총 배열 데이터는 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

댓글