반응형
Java를 조금더 딥하게 알고싶어 알고리즘 공부를 시작하게되었다.
한문제씩 풀어나가다 처음보는 것이 있어 적어 두려고한다.
아직 한참 모자르다...
모르는 코드 : scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
1). 전체 코드
public class Solution {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for(int i=1; i<=10; i++){
System.out.println(N+" x "+i+" = "+(N*i));
}
scanner.close();
}
}
2). 사용이유
int i = scan.nextInt(); // 1)
String s = scan.nextLine(); // 2)
위와같은 코드를 짤 때 첫번째 int 만 입력을 받고 그다음 nextLine() 부분을 건너띄는 경우가 발생한다.
nextInt() 에서 Enter 를 칠 때 발생하는 '개행문자'를 처리하지 않고 버퍼에 남기기 때문이다.
그래서 scanner에 남아있는 불필요한 것들을 제거하는 코드라고 생각하면 된다.
Scanner.nextLine()의 정규표현식
private static final String LINE_SEPARATOR_PATTERN = "\r\n|[\n\r\u2028\u2029\u0085]";
- /r/n : Windows line ending
- /n : UNIX line ending
- /r : Macintosh (pre-OSX) line ending
- \u2028 : LINE SEPARATOR
- \u2029 : PARAGRAPH SEPARATOR
- \u0085 : NEXT LINE(NEL)
반응형
'Java > Basic' 카테고리의 다른 글
[Java] Collection 정리 List란 ArrayList & LinkedList (0) | 2021.01.28 |
---|---|
[Java-Basic] Reflection API 를 사용하여 Custom Annotation 만들기 (0) | 2021.01.22 |
[Java] 초보 가이드 -4 (0) | 2021.01.04 |
[Java] 초보 가이드 -3 (0) | 2021.01.04 |
[Java] 초보 가이드 -2 (0) | 2020.12.30 |