```
자바 공백으로 띄운 스트링 입력 리스트로 변환하는 3가지 방법
(Read Single Line of String with space as the separator to integer list using a single line of code using stream)
```

이번 글을 통해 배워갈 내용
- For문을 통해 int 리스트로 변경
- For문과 StringTokenizer를 사용해서 int 리스트로 변경
- Stream을 이용해서 쉽게 int 리스트로 변경
1 For문을 통해 int 리스트로 변경
. split(" ")으로 공백으로 나눈 다음
for문을 돌려서 리스트에 더하고
출력을 해줬습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = new ArrayList<>();
for (String str : br.readLine().split(" ")) {
list.add(Integer.parseInt(str));
}
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
2. For문과 StringTokenizer를 사용해서 int 리스트로 변경
String Tokenizer를 이용한 방법입니다.
토큰 별로 나눠서 입력하지만 개수가 정해지지 않으면 While문을 자주 쓰게 되는데
저는 While문을 선호하지 않아서 자주 쓰지는 않습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = new ArrayList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
while (st.hasMoreTokens()){
list.add(Integer.parseInt(st.nextToken()));
}
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
3. Stream을 이용해서 쉽게 int 리스트로 변경
전부터 많이들 쓰고 있지만
핫한 건 역시 명령형 보다는 선언형인 것 같아서
Stream을 써서 한 줄로 입력받는 게 너무 편해서 제가 자주 쓰는 방법입니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt).collect(Collectors.toList());
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
추가로 혹시 배열을 한 줄로 입력받고자 하신다면
아래 방법도 있습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
Integer[] arr = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt).toArray(Integer[]::new);
// 출력
StringBuilder sb = new StringBuilder();
for (int num : arr) {
sb.append(num).append(" ");
}
sb.setLength(sb.length()-1);
System.out.print(sb);
// 생성된 BufferedReader 반환
br.close();
}
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]
입력
1 2 3 4
출력
[1, 2, 3, 4]
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조
Stream a list of n-integers from a file to create n object array
Assume each T object can be instantiated as T tobj = new T(//int value); So to create an array of T[ ] from integers in a file seperated by space I do the following: BufferedReader br; FileRe...
stackoverflow.com
'Java > Java 기타' 카테고리의 다른 글
자바 고전적 For loop 대신 IntStream 사용해보기 (0) | 2022.05.15 |
---|---|
For loop 대신 Stream을 사용하는 2가지 이유 (0) | 2022.05.15 |
StringBuffer를 쓰는 두가지 이유 그리고 간략한 JAVA StringBuilder, StringBuffer, String 설명 (0) | 2022.03.26 |
JAVA로 시스템 환경 값 가지고 오기 (0) | 2022.03.25 |
JAVA로 시스템 속성에 값넣고 값가지고 오기 (0) | 2022.03.25 |
```
자바 공백으로 띄운 스트링 입력 리스트로 변환하는 3가지 방법
(Read Single Line of String with space as the separator to integer list using a single line of code using stream)
```

이번 글을 통해 배워갈 내용
- For문을 통해 int 리스트로 변경
- For문과 StringTokenizer를 사용해서 int 리스트로 변경
- Stream을 이용해서 쉽게 int 리스트로 변경
1 For문을 통해 int 리스트로 변경
. split(" ")으로 공백으로 나눈 다음
for문을 돌려서 리스트에 더하고
출력을 해줬습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = new ArrayList<>();
for (String str : br.readLine().split(" ")) {
list.add(Integer.parseInt(str));
}
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
2. For문과 StringTokenizer를 사용해서 int 리스트로 변경
String Tokenizer를 이용한 방법입니다.
토큰 별로 나눠서 입력하지만 개수가 정해지지 않으면 While문을 자주 쓰게 되는데
저는 While문을 선호하지 않아서 자주 쓰지는 않습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = new ArrayList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
while (st.hasMoreTokens()){
list.add(Integer.parseInt(st.nextToken()));
}
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
3. Stream을 이용해서 쉽게 int 리스트로 변경
전부터 많이들 쓰고 있지만
핫한 건 역시 명령형 보다는 선언형인 것 같아서
Stream을 써서 한 줄로 입력받는 게 너무 편해서 제가 자주 쓰는 방법입니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
List<Integer> list = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt).collect(Collectors.toList());
// 출력
System.out.println(list);
// 생성된 BufferedReader 반환
br.close();
}
}
추가로 혹시 배열을 한 줄로 입력받고자 하신다면
아래 방법도 있습니다.
public class Main {
public static void main(String[] args) throws IOException {
// BufferedReader Object 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
Integer[] arr = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt).toArray(Integer[]::new);
// 출력
StringBuilder sb = new StringBuilder();
for (int num : arr) {
sb.append(num).append(" ");
}
sb.setLength(sb.length()-1);
System.out.print(sb);
// 생성된 BufferedReader 반환
br.close();
}
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]
입력
1 2 3 4
출력
[1, 2, 3, 4]
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조
Stream a list of n-integers from a file to create n object array
Assume each T object can be instantiated as T tobj = new T(//int value); So to create an array of T[ ] from integers in a file seperated by space I do the following: BufferedReader br; FileRe...
stackoverflow.com
'Java > Java 기타' 카테고리의 다른 글
자바 고전적 For loop 대신 IntStream 사용해보기 (0) | 2022.05.15 |
---|---|
For loop 대신 Stream을 사용하는 2가지 이유 (0) | 2022.05.15 |
StringBuffer를 쓰는 두가지 이유 그리고 간략한 JAVA StringBuilder, StringBuffer, String 설명 (0) | 2022.03.26 |
JAVA로 시스템 환경 값 가지고 오기 (0) | 2022.03.25 |
JAVA로 시스템 속성에 값넣고 값가지고 오기 (0) | 2022.03.25 |