java.util.regex.PatternSyntaxException : null (in java. util.regex.Pattern)错误

标签 java string character

public void convertStrings() {
    for (int counter = 0; counter < compare.length; counter++) {
            compare[counter] = compare[counter].replace('*','_'); 
            compare[counter] = compare[counter].replaceAll("_",".*"); 
            compare[counter] = compare[counter].replace('?', '.'); 
    }
    // System.out.printf("%s", Arrays.toString(compare));
} 
public void compareStrings() {
    for (int counter = 0; counter < data.length; counter++) {
        for (int counter1 = 0; counter1 < compare.length; counter1++) {

            if (data[counter].matches(compare[counter1]) == true) {
                System.out.printf("%s ", data[counter]); 
            }

        }
        System.out.println(); 
    }
}

}

我想做的是将输入中的任何 * 替换为 .* ,这样当我将字符串与之前的任何内容进行比较时,它会忽略以前的字符。另外,我正在转换一个“?”转换为占位符值“.”。但是,当我运行编译后的代码时,我收到此错误,因为字符串将特殊字符转换为常规字母。如何让编译器注册这些特殊字符来执行该功能?

最佳答案

只需将行更改为:

compare[counter] = compare[counter].replaceAll("\\*",".*").replaceAll("\\?", "."); 

关于java.util.regex.PatternSyntaxException : null (in java. util.regex.Pattern)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917387/

相关文章:

java - 角色出现

java - 在codeigniter中修改时编辑下拉列表

c++ - 如何将 VB.Net 字符串作为 char* 传递给 C++ dll?

string - 从 Delphi 7 升级到 Delphi 2009

arrays - vba从数组数组中提取数组

c - 不能在字符串中更改字符

r - 用cat()和paste()串联字符串之间有什么区别?

java - 在LibGDX scene2d中,更改选择框的项目后,它不再具有默认监听器

java - 线程二叉树

java - J2ObjC JavaUtilHashMap 未在 Swift 中显示