Я заменяю вопросительные знаки в строке с разными значениями.Java Replace Вопросительные знаки, не окруженные кавычками
Пример:
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 (регулярное выражение, замена)' ;? –