내 로그에서이 정보가 계속 표시되지만 본인의 지식에 따르면이 시나리오는 불가능합니다.유효한 숫자에 대한 NumberFormatException
java.lang.NumberFormatException: For input string: "1487832810"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.7.0_80]
at java.lang.Long.parseLong(Long.java:430) ~[na:1.7.0_80]
at java.lang.Long.parseLong(Long.java:483) ~[na:1.7.0_80]
here is (내가 생각하는) 관련 소스 코드 (보안 목표 명세서의 줄 번호 일치)
424: char firstChar = s.charAt(0);
425: if (firstChar < '0') { // Possible leading "+" or "-"
426: if (firstChar == '-') {
427: negative = true;
428: limit = Long.MIN_VALUE;
429: } else if (firstChar != '+')
430: throw NumberFormatException.forInputString(s);
따라서, 첫 번째 문자 (1
가) < '0'
이라고 생각?
나는 그것이 문자 인코딩 문제 또는 뭔가라고 가정 할 수 있습니다.
아이디어가 있으십니까?
아마도'1' 전에 인쇄 할 수없는 문자가있다? 'Long.parseLong'이라고 부르는 번호의 길이를 기록 할 수 있습니까? –
메소드의 다른 부분이 있기 때문에 "1 < '0'"이 아닌 경우는 아닙니다. 아마 숨겨진 인물 일 겁니다. – Maroun
오류를 표시하는 동안 문자열 앞뒤에 따옴표가 오는 이유는 무엇입니까? 문자열이 "\"1487832810 \ ""일 가능성이 있습니다. 그냥 물어 보는 건데. 문자열의 길이를 표시하고 알려주십시오. – gRaWEty