String []. Split (строковое регулярное выражение) вообще не будет разбиваться при использовании String в качестве регулярного выражения. - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь прочитать полином в моем формате, который бы складывал константу с одной и той же переменной, и для этого мне нужно отделить константу и переменную от «x ^», но когда я пытаюсь использовать .split ( ) метод, который вообще не разбивается и просто помещает всю строку в первую ячейку массива.

// Splitting terms into constants and variables:
String splitTerms[][] = new String[terms.size()][2];
for (int i = 0; i < terms.size(); i++) {
    String tempTerm = terms.get(i);
    if (tempTerm.indexOf("x^") >= 0) {
        // Here is where the problem occurs:
        splitTerms[i] = tempTerm.split("x^");
    }
    else if (tempTerm.indexOf("x") >= 0) {
        splitTerms[i][0] = tempTerm.substring(0, tempTerm.length()-1);
        splitTerms[i][1] = "1";
    }
    else {
        splitTerms[i][0] = tempTerm;
        splitTerms[i][1] = "0";
    }
}

Если кто-нибудь знает, почему это происходит или что я должен сделать, чтобы это исправить, я был бы очень признателен за помощь!

1 Ответ

2 голосов
/ 26 марта 2019

split() использует регулярное выражение, а ^ - специальный символ, поэтому вам нужно экранировать ^:

tempTerm.split("x\\^");

Который для String "2x ^ 2" выведет:

[2, 2]
...