728x90
반응형
Scanner 버퍼 오류
Int입력 후 Enter키가 다음 scanner인 nextLine에 대입되어 원하는 String 값을 넣지 못하는 오류
System.out.println("숫자를 입력");
int i = scanner.nextInt();
scanner.nextLine();
System.out.println("글자를 입력");
String s = scanner.nextLine();
//숫자를 입력
//3
//글자를 입력
- 따라서 int값 이후의 enter를 저장해주기위해 빈 scanner를 하나 생성
- 입력된 보이지 않는 enter값이 빈 scanner에 들어가고 원하는 값을 nextLine에 넣을 수 있었음
계산순서에 따른 Casting (형변환) 2 byte to 4 byte 오류
char을 int와 계산할때 2byte가 4byte로 자동형변환 되어 원하는 값이 나오지 않을 경우
String Id = "8612141010100";
if(Id.charAt(6) - 48 == 1 || Id.charAt(6) == 3 -'0');
- 자동형변환은 값손실을 막기위하여 작은 값에서 큰 값으로 casting 됨
- 따라서 원하는 int 값을 주기 위해서는 '0' 작은따옴표 안에 있는 0을 추가 즉 int값 48의 값을 마이너스 해줌
- int 값 1 은 '49' 따라서 48값인 '0'을 빼줌으로서 우리가 아는 인트값 1을 출력
728x90
반응형
'Java > 오류노트' 카테고리의 다른 글
오류노트 - jquery 사용해서 ajax 사용했는데 자꾸 안되던 문제 (ajax is not a function 에러) (0) | 2022.03.11 |
---|---|
JSON 활용 시 alert 후에 sessions 값 다시 불러오는 거 오류 (0) | 2022.03.10 |
오류노트 - array 숫자배열 섞기 (0) | 2022.01.19 |