Экранировать вложенные кавычки на Java

175
31 января 2020, 18:20

Уже долго мучаюсь над проблемой. Имеются строки примерно такого формата: registrationNumber:""074-р"" registrationNumber:"074"-р" registrationNumber:""07"4-р"" После двоеточия наружные кавычки всегда имеются, количество вложенных кавычек может быть произвольным. Никак не могу реализовать способ экранировать кавычки, вложенные в основные. Помогите пожалуйста.

Answer 1

Вроде можно так.

public class HelloWorld {
    public static void main(String[] args) {
        String s = "egistrationNumber:\"074\"-р\"";
        System.out.println(s);
        String replacedStr = s.replaceAll("\"", "\\\\\"");
        System.out.println(replacedStr);
    }
}

ouput:

egistrationNumber:"074""
egistrationNumber:\"074\"-р\"

UDP:

public class HelloWorld {
    public static void main(String[] args) {
        String[] arrays = {
                "registrationNumber:\"\"074-р\"\"",
                "registrationNumber:\"074\"-р\"",
                "registrationNumber:\"\"07\"4-р\"\"",
        };
        Pattern pattern  = Pattern.compile("(.+:)\"(.+)\"");
        for (String string : arrays) {
            Matcher matcher = pattern.matcher(string);
            if (matcher.find()) {
                String result = matcher.group(2).replace("\"", "\\\"");
                String newString = matcher.group(1) + "\"" + result + "\"";
                System.out.println("NewString: " + newString);
            } else {
                System.out.println("Не найден: " + string);
            }
        }
    }
}

ouput:

NewString: registrationNumber:"\"074-р\""
NewString: registrationNumber:"074\"-р"
NewString: registrationNumber:"\"07\"4-р\""

См. демо на Java онлайн.

READ ALSO
Ширина блока по наибольшему

Ширина блока по наибольшему

возникла проблема с выравниванием ширины блока по наибольшему в колонкеВот как это выглядит на данный момент:

185
JavaScript выдает ошибку Uncaught TypeError: Cannot read property 'innerHTML' of undefined

JavaScript выдает ошибку Uncaught TypeError: Cannot read property 'innerHTML' of undefined

Ошибка говорит что нельзя присвоить текст к несуществующему объекту, что-то не так с получением данных

183
Сложить два очень больших числа

Сложить два очень больших числа

//Сложность заключается в запоминании единицы при сложеннии и добавлении её на следующей итерации

161