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