알아가기/Java

[Java] 공백 없는 연속된 숫자들 분리하여 배열에 입력받기 (split, toCharArray)

XEV 2023. 1. 12. 00:43

자바로 코딩 테스트 문제를 풀 때, 띄어쓰기로 공백이 형성된 여러 단일 숫자들의 데이터는 간단하게 배열로 작성이 가능하나, 공백 없이 한 번에 나열된 숫자들은 각각 띄워서 배열로 저장을 하려면 번거로운 작업이 필요하다.

 

 

split()

String[] strArr = sc.next().split("");

첫째, 임시 배열 strArr 에 .split("") 으로 분할하여 입력받는다.

 

numberArr[i][j] = Integer.parseInt(strArr[j]);

둘째, 입력받은 문자형 숫자를 하나씩 꺼내어 Integer.parseInt() 로 int 변환을 한다.

 

 

적용 코드

// using the split()
package input_numbers;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] numberArr = new int[n][n];
// split
for (int i = 0; i < n; i++) {
String[] strArr = sc.next().split(""); // storing numbers as characters using the split().
for (int j = 0; j < n; j++) {
numberArr[i][j] = Integer.parseInt(strArr[j]);
}
System.out.println(Arrays.toString(numberArr[i])); // print output.
}
sc.close();
}
}
// input
//5
//40241
//13512
//11113
//04054
//14431
// print output
//[4, 0, 2, 4, 1]
//[1, 3, 5, 1, 2]
//[1, 1, 1, 1, 3]
//[0, 4, 0, 5, 4]
//[1, 4, 4, 3, 1]

 

 

 

 

 

toCharArray()

char[] chrArr = sc.next().toCharArray();

첫째, 임시 chrArr 에 .toCharArray() 을 사용하여 char 형식으로 분할하여 입력받는다.

 

numberArr[i][j] = chrArr[j] - '0';

둘째, char 형식의 사칙연산은 유니코드 숫자의 계산을 반환한다.

따라서 chrArr[j] 에 따르는 유니코드 숫자와 '0' 을 의미하는 유니코드 숫자 65 의 뺄셈이 된 숫자가 numberArr[i][j] 에 들어간다.

 

 

적용 코드

// using the toCharArray()
package input_numbers;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] numberArr = new int[n][n];
// toCharArray
for (int i = 0; i < n; i++) {
char[] strArr = sc.next().toCharArray(); // storing numbers as characters using the toCharArray().
for (int j = 0; j < n; j++) {
numberArr[i][j] = strArr[j] - '0';
}
System.out.println(Arrays.toString(numberArr[i])); // print output.
}
sc.close();
}
}
// input
//5
//40241
//13512
//11113
//04054
//14431
// print output
//[4, 0, 2, 4, 1]
//[1, 3, 5, 1, 2]
//[1, 1, 1, 1, 3]
//[0, 4, 0, 5, 4]
//[1, 4, 4, 3, 1]