首页 > 解决方案 > String[].split(String regex) 在使用 String 作为正则表达式时根本不会拆分

问题描述

我正在尝试以我的格式读取一个多项式,它将常量与相同的变量加在一起,为此我需要将常量和变量从“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";
    }
}

如果有人知道为什么会发生这种情况或我该怎么做才能解决它,我将非常感谢您的帮助!

标签: javaarraysstringmultidimensional-arraysplit

解决方案


split()使用正则表达式,并且^是一个特殊字符,因此您需要转义^

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

“ 2x String^2”将输出:

[2, 2]

推荐阅读