2013-08-20 4 views
0

"0" 문자열을 Java에서 0 (int)으로 구문 분석 할 때마다 InvalidInt 오류가 발생합니다.
그러나 "1", "2" 등의 문자열이 작동합니다.parseInt : int "0"이 유효하지 않습니다.

업데이트 : 다른 숫자도 작동하지 않습니다.

웹 페이지에서 PHP 파일의 HTML 소스 코드를 가져 오는 중이며이 웹 페이지에는 하나의 번호 만 표시됩니다.

코드 : 질문 아래에 코멘트에서 제공하는 정보와

String[] result = sourceCode.trim().split("<br>"); 
for (int i = 0; i < result.length; i++) 
{ 
    result[i] = result[i].trim().replace("\n", "").replace("\r", ""); 
} 

    if (Integer.parseInt(result[0]) > 0) 
    { 
     //Do Something 
    } 

Error Message

답변

3

, 그것은 당신이 당신의 문자열의 시작 부분에 반복적으로 Unicode Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF)이 밝혀졌습니다. 당신은 그것을 제거하려면 다음을 수행 할 수 있습니다

final String ZERO_WIDTH_NO_BREAK_SPACE = "\uFEFF"; 
String good = result[0].replace(ZERO_WIDTH_NO_BREAK_SPACE, ""); 

는 또한, 모든 문자 inbetween 숨겨진 TAB있다.

good = good.replaceAll("\\s+", ""); 
+0

그러나 값이 정말로 ""1 "이고 여분의 공백이있는 경우에는 'trim'에 대한 호출이 수행하지 않는 작업을 수행하지 않습니다. –

+0

@DavidWallace : 업데이트 된 답변보기. – jlordo

+0

그런데 U + FEFF는 UTF-16 또는 UTF-32 텍스트의 바이트 순서를 나타내는 데 사용되는 유니 코드 바이트 순서 표시 (BOM)이며, 때로는 다른 유니 코드로 인코딩 된 코드의 인코딩을 나타내는 데 사용될 수도 있습니다 본문. – ruakh

관련 문제