본문 바로가기
Java

[Java] String으로 입력받은 숫자들 int 배열에 한번에 저장하기

by IronAreum 2024. 12. 2.
728x90

코드 예시

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

// 첫 번째 입력: 수의 개수 N
int N = Integer.parseInt(bf.readLine());

// 두 번째 입력: N개의 수를 한 줄로 입력받아 배열에 저장
long[] num = Arrays.stream(bf.readLine().split(" ")) // 공백으로 나누기
                   .mapToLong(Long::parseLong)       // String -> long 변환
                   .toArray();                       // 배열로 변환

// 확인용 출력
for (long val : num) {
    System.out.println(val);
}
 

동작 설명

  1. bf.readLine(): 한 줄 입력을 받아 문자열로 저장합니다.
  2. .split(" "): 공백 기준으로 문자열을 나눠서 String[]로 변환합니다.
  3. Arrays.stream(...).mapToLong(Long::parseLong): String[]을 long[]으로 변환합니다.
    • mapToLong(Long::parseLong): 각 문자열을 long 타입으로 변환합니다.
  4. .toArray(): 스트림을 long[]으로 최종 변환합니다.

장점

  • 입력받은 값을 한 줄로 깔끔하게 처리할 수 있습니다.
  • 별도의 반복문 없이 N개의 수를 바로 long[]로 저장할 수 있습니다.

추가 팁

  • 만약 숫자들이 공백이 아닌 다른 구분자로 구분되어 있다면, .split() 안의 문자열을 해당 구분자로 변경하면 됩니다.
  • 예: 쉼표(,)로 구분된 경우 → .split(",")
  • Integer 배열로 처리해야 한다면 mapToInt(Integer::parseInt)를 사용할 수도 있습니다.

이 방법을 사용하면 효율적으로 데이터를 처리할 수 있으니 활용할수 있다! 

 

728x90

 

728x90

'Java' 카테고리의 다른 글

Maven Pom.xml 구조에 관하여  (0) 2025.04.29
[Java] Stream 사용법  (2) 2024.12.02
[Java] Int와 Long 사용 구분하기  (2) 2024.12.02
[Java] Scanner vs BufferedReader  (0) 2024.11.25
[Java] 표준입출력 System.in 클래스  (4) 2024.11.12