2013-01-19 3 views
0

몇 시간 동안 알아 내지 못했던 정말 이상한 문제가 있습니다. 기본적으로이 getInterfaceBounds-client.ry 분할하려고 메신저하는 arrayindexoutofbounds 예외를 받고이문자열을 분할 할 때 오류가 발생했습니다.

final String className = line.split(".")[0]; 

메신저 뭘 메신저입니다. 왜 그런지 모르겠군요, 그렇죠?

Exception in thread "Thread-3" java.lang.ArrayIndexOutOfBoundsException: 0

+0

line.split (".") – Srinivas

답변

1

필요한 변경 사항은 다음과 같습니다

final String className = line.split("\\.")[0]; 

확인 자세한 내용은이 예.

String s="getInterfaceBounds-client.ry"; 
    String[] arr = s.split("\\."); 
    for(String str : arr) 
    { 
    System.out.println(str); 
    } 

ideone link.

+1

할 때 얻을 수있는 배열의 크기를 확인하십시오. –

0

대신이 방법을 사용하면 효과가 있습니다. 방금 테스트 했어.

String line = "getInterfaceBounds-client.ry"; 

String className = line.split("[.]")[0]; 

System.out.println(className); 

. 모든 문자를 나타내는 정규 표현식의 특수 문자입니다.

현재 정규식에 다른 특수 문자에 대해 자세히 알아볼 수 있습니다 : http://www.fon.hum.uva.nl/praat/manual/Regular_expressions_1__Special_characters.html

0
유는을 accesing의 혼란을 방지 할 배열을 사용하는 경우가 도움이 될 것입니다, 그래서 우리는 분할에서 값보다 더받을 수 beacuse split()에 대한

사용 배열 변수 예 :

String line = "getInterfaceBounds-client.ry.test"; 
String test[] = line.split("[.]"); 
System.out.println(test[0]+test[1]+test[2]); 
관련 문제