Замена больших букв в строке маленькими с точкой впереди [закрыт]

148
18 апреля 2019, 13:30

Например "Sweet" -> ".sweet" или "FeDex" -> ".fe.dex"

Я нашла следующий код, но он не работает.

public String readString(String toRead) {
    char[] array = toRead.toCharArray();
    String result = "";
    for(int i = 0; i < array.length; i++) {
        if(Character.isDigit(array[i]) && i == 0 || i > 0 && 
                !Character.isDigit(array[i-1]) && Character.isDigit(array[i])) {
            String indicatesNumbers = "\u283C";
            String key = Character.toString(array[i]);
            result += indicatesNumbers + map.get(key);
            continue;
        }
        if(Character.isDigit(array[i]) && i > 0) {
            String key = Character.toString(array[i]);
            result += map.get(key);
        } else {
            result += array[i]; 
        }
    }
    return result;
}

Подскажите, как добиться правильной замены больших букв маленькими с точкой впереди?

Answer 1

У вашего кода правильный ход мыслей,(до некоторой степени) но нужно немного "дожать";
В контексте конкретно той задачи, которую вы обрисовали, могу предложить следующую функцию:

    String toLowerWithDot(String inputString) {
    //StringBuilder просто быстрее работает, можно использовать и просто String 
    StringBuilder outputBuilder = new StringBuilder();
    //Разбиваем строку на массив символов
    char[] lettersArray = inputString.toCharArray();
    for (int i = 0; i < lettersArray.length; i++) {
        //Если символ в верхнем регистре..
        if(Character.isUpperCase(lettersArray[i])) {
            //добавляем его в результирующую строку, но с точкой, и в нижнем регистре
            outputBuilder.append("." + Character.toLowerCase(lettersArray[i]));
        } else {
            //(а если нет, то просто добавляем)
            outputBuilder.append(lettersArray[i]);
        }
    }
    return outputBuilder.toString();
}


p.s. запускабельный пример использования- https://pastebin.com/YNNachjQ

READ ALSO
Android Studio остановка приложения

Android Studio остановка приложения

Почему андроид студия останавливает приложение при нажатии кнопки create? В коде никаких ошибок не подсвечено и оно нормально компилируется...

177
В Java всё объекты?

В Java всё объекты?

Я читаю книгу и иногда в примере мы ссылаемся на переменную, а в книге описывается мол ссылаемся на объектВот эти слова:

155
Оптимизировать код по сохранению Entity

Оптимизировать код по сохранению Entity

Имеются две Entity, ссылающиеся друг на друга соответствующими полями отмеченными аннотациями

161
Telegram API получить список чатов

Telegram API получить список чатов

Я делаю клиент для Telegram на Java с использованием официальной библиотеки TDLib, те

134