2013-04-26 3 views
1

Я хочу, чтобы разделить значения входной строки, разделенные одной из этих полукоксаSplit Строка множественным символ Синтаксис

, 
; 
blankspace 
\ 
/

в двойной массив

Мой код , является

String valueS[] = input.split(","); 
     int n = valueS.length; 
     double yvalue[] = new double[n]; 
     double sum = 0; 
     for (int i = 0; i < n; i++) { 
      yvalue[i] = Double.parseDouble(valueS[i]); 
     } 

Что является правильным синтаксисом, который я должен поставить в

String valueS[] = input.split(","); 

, чтобы разделить также с другими перечисленными символами?

+0

, разделенный на ';' и 'blankspace', будет работать так же, как сейчас, работает с', '. но обратная косая черта и перемотка вперед будут сложными. –

ответ

3

Чтобы ответить на ваш вопрос, String.split (String regularExpression) использует regular expression, чтобы определить, как разделить массив на.

Это регулярное выражение ниже будет пытаться разделить массив с помощью любого из этих символов:

  • ,
  • ;
  • пространство
  • \
  • /

Он использует "Перечень", который будет соответствовать 1 или более из этих символов в строке, а затем разделить на них:

String[] valueS = input.split("[,;\\s\\\\/]+"); 

Надеюсь, это поможет.

+0

'input.split (" [\\] ")' будет выдавать 'java.util.regex.PatternSyntaxException: ошибка синтаксиса U_REGEX_BAD_ESCAPE_SEQUENCE' –

+0

Ahh Я забываю избежать \ для строки и регулярного выражения, обновил ответ. –

+0

ваш обновленный ответ не будет разделять целые data.i.e: 'input =" 1 \ 2 \ 3 "', тогда это 'valueS [0] = 1'. Это все. –