Как преобразовать массив String в String в Java (игнорировать пробелы и скобки) - PullRequest
1 голос
/ 26 декабря 2011

String будет выглядеть следующим образом:

String temp = "IF (COND_ITION) (ACT_ION)";
// Only has one whitespace in either side of the parentheses

или

String temp = "   IF    (COND_ITION)        (ACT_ION)  ";
// Have more irrelevant whitespace in the String
// But no whitespace in condition or action

Я надеюсь получить новый массив String, который содержит три элемента, игнорируйте скобки:

String[] tempArray;
tempArray[0] = IF;
tempArray[1] = COND_ITION;
tempArray[2] = ACT_ION;

Я пытался использовать метод String.split (regex), но я не знаю, как реализовать это регулярное выражение.

Ответы [ 3 ]

2 голосов
/ 26 декабря 2011

Если ваша входная строка всегда будет в том формате, который вы описали, лучше проанализировать ее на основе всего шаблона, а не только разделителя, как показано в этом коде:

(.*?)           IF
[/s]            white space
\\((.*?)\\)     (COND_ITION)
[/s]            white space
\\((.*?)\\)     (ACT_ION)
0 голосов
/ 26 декабря 2011

Вы можете использовать StringTokenizer для разбиения на строки, разделенные пробелами.Из документации Java:

Ниже приведен один пример использования токенизатора.Код:

StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
  System.out.println(st.nextToken());
} 

выводит следующий вывод:

  this
  is
  a
  test

Затем напишите цикл для обработки строк, чтобы заменить скобками.

0 голосов
/ 26 декабря 2011

Я думаю, что вам нужно регулярное выражение типа "\\)? *\\(?", предполагая, что любые пробелы в скобках не должны быть удалены. Обратите внимание, что это не подтверждает правильность соответствия скобок. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...