인터넷을 통해 데이터를 수신해야하는 프로그램을 만들고 있습니다. 그것은 DatagramSockets과 DatagramPackets을 사용하여 그렇게합니다. 이 모든 잘 작동하고 바이트 배열은 내가 기대하는 정확한 것입니다.NumberFormatException 유효한 숫자 문자열
그러나 바이트 배열을 문자열로 변환하고 정수로 변환하려고하면 매우 이상한 일이 발생합니다. 이 문자열 "74185, 난이 data
의 내용을 검사 할 때
String length = new String(data, 1, data.length-1);
System.out.println("length = "+length);
size = Integer.parseInt(length);
System.out.println("size = "+size);
그러나, 나는 그냥 55,52,49,56,53,0,0,0,0,0,0,0,0,0,0,0,0
포함되어 있음을 볼 수, 괜찮 : 아래의 코드를 실행
parseInt
라인에 NumberFormatException이 있습니다 ". 이 예외를 throw합니다.
length
문자열로 "74185"를 하드 코딩하면 모든 것이 잘 작동합니다.
무엇이 잘못 될 수 있습니까?
네트워크에서 읽은 바이트 수에주의를 기울이고 있습니까? 명시 적 인코딩을 String 생성자에 전달하는 것을 고려 했습니까? 한 칸씩 한 줄씩 16 진수로 띄워 봤습니까? – bmargulies