자바로 코딩 테스트 문제를 풀 때, 띄어쓰기로 공백이 형성된 여러 단일 숫자들의 데이터는 간단하게 배열로 작성이 가능하나, 공백 없이 한 번에 나열된 숫자들은 각각 띄워서 배열로 저장을 하려면 번거로운 작업이 필요하다.
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]
'알아가기 > Java' 카테고리의 다른 글
[Java] 맥북 Tomcat 설치 후 ./startup.sh 실행 시 권한 거부 해결 (0) | 2023.01.26 |
---|---|
[Java] substring() 원하는 위치의 문자열을 가져오기 (0) | 2023.01.21 |
[Java] ArrayList 모든 원소 출력하기 (0) | 2022.12.31 |
[Java] 파일 상대경로 설정 (Relative Path on Mac) (0) | 2022.12.27 |
[Java] 잘못된 입력에 대해 exception 으로 재입력 유도 (0) | 2022.12.26 |