2015-02-28 2 views
0

У меня возникла проблема с функцией split, возвращающей пустой массив. Когда какой-либо индекс вызывается из массива, он выдает исключение индекса из пределов. Вот код:Сплит-метод, возвращающий пустой массив в Java

class splitNumber { 
    public static void main(String[] args) { 
     String number = "3.84"; 
     String[] sep = number.split("."); 
     System.out.println(sep[0]); 
    } 
} 

Есть ли какое-либо исправление или обходное решение для этого? Я использую Java SE 7.

ответ

1

"." это специальный символ в регулярных выражениях и строковый метод в split принимает регулярное выражение, которое вам нужно бежать как:

String[] sep = number.split("\\."); 
2

Как уже отмечалось, String#split принимает регулярное выражение. Один альтернативный способ построения, что регулярное выражение является использование Pattern#quote:

String number = "3.84"; 
String[] sep = number.split(Pattern.quote(".")); 
System.out.println(Arrays.toString(sep)); 

Это избавит вас от ввода кучу нудных эвакуационных символов.

0

Используйте "\."

«Обратите внимание, что это принимает регулярное выражение, поэтому, если необходимо, избегайте специальных символов, например, если вы хотите разделить на период, что означает« любой символ »в регулярном выражении, используйте либо split (« \. »), Либо раскол (Pattern.quote (». "))."

How to split a string in Java

Смежные вопросы