Составьте предложение с буквами, чередующимися в случае - PullRequest
0 голосов
/ 30 июня 2019

Я реализую программу на Java, которая позволяет генерировать эту последовательность с цепочкой следующего способа:

Введите:

Hello World

хорошие флюиды

цепочка с последовательностью:

Привет, мир

ГОЛОВЫ ВИБСОВ

Попробуйте сделать это, преобразовав входные данные String в строку типа массива с разделением, затем с помощью if, перейдите к проверке четных позиций и преобразованию буквы, которая находится в этой строчной позиции, и с нечетными позициями, такими же , только что преобразование в заглавные буквы ... Проблема в том, что массив также сохраняет пробелы, что вызывает отставание в последовательности, и я не могу удалить его, так как я должен показать текст в формате inputtext, Что я могу сделать, чтобы выполнить последовательность, не изменяя пробелы и разрывы строк, которые у нее есть?

программа выдаст мне:

Привет, мир

GoOd VIBES

код:

public String cambiar(String cadena1)
{
cambiar= cadena1.split("");

for(int i=0; i<cambiar.length; i++)
{
    if(i%2==0)
    {
        cambiar[i]=cambiar[i].toLowerCase();
    }
    else
    {
        cambiar[i]=cambiar[i].toUpperCase();
    }
}
 for(int i=0; i<cambiar.length; i++)
{
    textocambiado+=cambiar[i];

}

return textocambiado;
   }

ПРИМЕЧАНИЕ: мне не разрешено использовать arraylist

Проблема: https://drive.google.com/open?id=15VOlyhGtyvZ_0vcFype2o1sjiKkj7Hzn

1 Ответ

1 голос
/ 30 июня 2019

У вас правильная идея, вам просто нужно пропустить увеличение счетчика для не букв.

Еще два улучшения производительности, которые вы могли бы рассмотреть:

  • Использование StringBuilder вместо объединения в строку
  • Использование boolean, которое вы переворачиваете, вместо проверки, является ли счетчик i нечетным или четным:

public String cambiar(String input) {
    boolean isLower = true;
    StringBuilder result = new StringBuilder(input.length());
    for (int i = 0; i < input.length(); ++i) {
        char ch = input.charAt(i);
        if (Character.isLetter(ch)) {
            if (isLower) {
                result.append(Character.toLowerCase(ch));
            } else {
                result.append(Character.toUpperCase(ch));
            }
            isLower = !isLower;
        } else {
            result.append(ch);
        }
    }

    return result.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...