2012-06-14 1 views
0

Я пытаюсь создать строковый массив с строками кодов, чтобы программа могла переписать часть существующего кода после того, как она попала в метку. Моя проблема возникает на этой линии:Ошибка синтаксиса escape-последовательности Java

var finalTitle = (str.replace("()", ("(" + num + ")"))); 

Как я пытаюсь преобразовать эту строку в допустимую строку, я понимаю, что кавычка может быть несколько сложнее разобрать. Это то, что я до сих пор:

"var finalTitle = (str.replace(\"()\", (\"(\" + num + \")\")));" 

Однако затмение не прекратит жаловаться, что синтаксис этой строки неверен. Кто-нибудь знает, как правильно форматировать эту строку? Или, возможно, более конкретно, как разбирать кавычки в строку?

Вот пример массива строк, который я заполняю. Я собираюсь петлю через него с каждой итерации, пишущего новую строку в .js файле:

String[] lines = {"var patientTree = getPatientMenuTree();", "var rootNode = patientTree.getNodeById('Patients');", "var str = rootNode.title;", "var num = patientArray.length;", "var finalTitle = (str.replace(\"()\", (\"(\" + num + \")\")));" }; 

ответ

1

Он должен работать нормально. Попробуйте назначить переменной:

String text = "var finalTitle = (str.replace(\"()\", (\"(\" + num + \")\")));"; 

Update

В конце линии у вас есть дополнительные };", которые не должны быть там:

String[] lines = {"...", "...", "...", "..." };" }; 

Я вижу, что вы уже исправили эту ошибку.

+0

Это действительно странно, потому что да, я полностью понимаю, что строковый литерал должен быть назначен. Я не знал, что он не будет работать в контексте массива String. – Addison

+0

@Addison: Ошибка не в строковом литерале, а в том, как вы инициализируете массив. У вас есть некоторые символы мусора перед закрывающей скобкой. Вероятно, ошибка копирования-вставки. –

+0

На самом деле я добавил этот фрагмент после вставки при аварии, так как я не вижу его в своем коде. Я закончил переписывание строки, и теперь она работает нормально. Спасибо. – Addison

Смежные вопросы