我正在尝试使用名称inputPath
替换字符串中与表达式匹配的少数几个字符,这样如果inputPath
包含"json*"
之类的表达式,则必须删除"json*"
从那个字符串。我确实喜欢这个:
String newPath = inputPath.replace("json*","");
当我打印newPath
时,我收到的字符串"json"
被删除但"*"
未被删除或替换。但我需要删除或替换整个"json*"
。我只是不明白为什么它不会替换"*"
而只替换"json"
。
答案 0 :(得分:1)
对于String类中的replace(),这不是真的和意外的。可能你正在使用replaceAll / replaceFirst,它将ReGex作为输入。我已经复制了你得到的东西。
use 5.010
在这种情况下,因为*是一个ReGex字符所以你需要使用\\来转义它们:
String newPath = inputPath.replaceAll(“json \\ *”,“”);
答案 1 :(得分:0)
我已经找到了我发布的上一个问题的解决方案: 如果我使用:
String finalPath = input.getPath().replace("json*","")
or
String finalPath = input.getPath().replace(input.getPattern(),"")
然后我将输出作为/ input / *并删除了json但*没有删除。相反我确实喜欢这样:
String replacedPattern = input.getPattern().replace("*","");
String replacedPath = input.getPath().replace("*","");
String finalPath=replacedPath.replace(replacedPattern, "");
现在我的输出为/ input /并删除了json *,预计会是。