java string.split () regex help - PullRequest
       0

java string.split () regex help

0 голосов
/ 16 февраля 2011

Если у меня есть переменная строка, которая хранит другую секцию символов из большей строки, как я могу разделить большую строку по меньшей строке, используя команду split с регулярным выражением?

Например, строковая переменная может хранить «def» Большая строка может быть «abcdefghi»

Когда команда split предварительно сформирована с вводом регулярного выражения в качестве строковой переменной, результирующее разделение будет выглядеть следующим образом:

а ГХИ

изменить: вот код

String string = new String("2+22*5-1*2");
String multiply = new String("22*5");

int leftNum = Integer.parseInt(multiply.split("\\*")[0]);
int rightNum = Integer.parseInt(multiply.split("\\*")[1]);

System.out.println(string);
System.out.println(multiply);
System.out.println(leftNum * rightNum);

//the following should print "2+"
String left = string.split(multiply)[0];
System.out.println(left);

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

"abcdefghi".split("def") даст {"abc", "ghi"}.

0 голосов
/ 16 февраля 2011
string.split("\\Q" + substring + "\\E");

Методы символов \ Q и \ E для вас экранированы.

0 голосов
/ 16 февраля 2011

Вам нужно будет экранировать *, чтобы использовать содержимое multiply в качестве регулярного выражения (параметр split является регулярным выражением):

 String regexp = multiply.replace("*", "\\*");
 String left = string.split(regexp)[0];

Это должно напечатать ожидаемый результат (2+)

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