JAVA заменяет все, кроме строк, начинающихся с ' - PullRequest
0 голосов
/ 12 февраля 2019

У меня испортилась строка вроде:

String text= "2018-11-22 08:30:21,311: 'h' 2018-11-22 08:30:21,312: 'e' 2018-11-22 08:30:21,313: 'll' 2018-11-22 08:30:21,314: 'o' ";

, и я хочу заменить все () другие строки на пусто кроме того, который начинается с '

Примерно так:

String cleartext = ""; 
if (text.contains("'"))
        cleartext = text.replaceAll("[text.startingWith("'a-z" + "'0-9")]", "");        
         out.println(cleartext);

Итак, вывод 'h' 'e' 'll' 'o'

Примечание: я только что нашел, что можно сделатьэто с методом замены, но если есть другие способы, которыми это может быть достигнуто, я не возражаю. MASSIVE Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Я думаю, вы ищете что-то подобное.

Pattern pattern = Pattern.compile("'[a-z0-9]+'");

private String function(final String input) {
    final Matcher matcher = pattern.matcher(input);
    final StringBuilder sb = new StringBuilder();
    while (matcher.find()) {
        if (sb.length() > 0) {
            sb.append(" ");
        }
        sb.append(matcher.group());
    }
    return sb.toString();
}

Однако я не совсем уверен в правилах, которые вы хотите применить, чтобы получить ожидаемый результат.Пример: "'''" => "'"?

0 голосов
/ 12 февраля 2019

По мне, мы можем сделать одну вещь.Надеюсь, вы не возражаете против ответа без кода.

  1. Разбейте строку по символу 'и поместите ее в массив строк.Например, строка "h'e’ll'o".становится h, e, ll, o,.

  2. Не учитывать все индексы нечетных чисел.Строка в четном индексе будет той, которая находится внутри символа '.Пример выше: "e, o"

  3. Вывести строковый массив даже по индексам или создать новый массив к шагу 2.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...