【发布时间】:2016-04-14 22:39:19
【问题描述】:
我正在用不同的值替换字符串中的问号。
例子:
String: "XYZ(?,?,?)"
Values: [1, 'Text', 0.5]
Result: XYZ(1,'Text', 0.5)
我的 Preudo 代码:
String s = "XYZ(?,?,?)";
for(int i = 0; i < array.lengh; i++){
s = s.replaceFirst("\\?",array[i]);
}
通常这很好用。但有时我的值中有一个问号,例如:值:[1,'Question?',0.5]。那么我的结果是:XYZ(1,'Question0.5', ?)。这是因为该函数替换了前一次迭代替换文本的问号。
如何告诉函数只替换没有被引号包围的问号?什么是正确的正则表达式?
【问题讨论】:
-
你的伪代码应该是
s = s.replaceFirst(regex, replacement);?