Openldap, аварийное переключение ldap_search_ext_s, возвращает IP правильного сервера

Вот самый простой метод, который я могу придумать.

public String swapAO(String s) {
    int a = s.indexOf('a');
    int o = s.lastIndexOf('o');
    if (a < 1 || o < 1) return s;
    String beforeA = s.substring(0, a);
    String between = s.substring(a + 1, o);
    String afterO = s.substring(o + 1);
    return beforeA + 'o' + between + 'a' + afterO;
}

Проще говоря, indexOf и lastIndexOf возвращают первые / последние позиции символа или отрицательное число, если символ нет. В коде говорится: «Найдите первые 'a' и last 'o', затем возьмите части строки перед« a », between the 'a' and 'o' , and after the 'o' , and join them back together with the «a» and «o'` переключен».

NB: substring(from, to) возвращает часть строки, начиная с from и останавливая перед to, т.е. from включен, to - нет. Кроме того, использование substring более эффективно, чем преобразование в char[], а затем обратно к String, потому что substring не копирует текст из исходной строки, но использует тот же массив символов, что и исходная строка внутри.

Вы также можете использовать Regex, если хотите.

public String swapAO(String s) {
    return s.replaceFirst("^([^a]*)a(.*)o([^o]*)$", "$1o$2a$3")
}
0
задан Agossi 18 January 2019 в 19:15
поделиться

1 ответ

AFAIK, то, что вы спрашиваете, невозможно. И это не имеет значения, серверы должны быть идентичными репликами.

0
ответ дан Ludovic Poitou 18 January 2019 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: