Выключен на одну ошибку для строки зарядки

Предполагается, что этот метод принимает строку и выводит строку в виде символов, однако она должна быть в два раза больше. Пример: строка "PaRty", возвращаемое значение должно быть "P", "P", "a", "a", "R", "R", "t", "t", "Y", "Y"

Для моего кода, когда я запускаю тест, он говорит, что массивы отличаются в element []; ожидается: но было:

Я не могу понять, было ли это неправильно, и надеялся, что кто-то может помочь указать мне что-то, чтобы понять и сделать эту работу, пожалуйста? И если я не согласен, объясните, пожалуйста?

//Implementing the second method: toExpandedArray, which works with 
//a string and then returns chars of that string. 
public static char[] toExpandedArray(String string)
{
    //Initializing variable needed to char the string
    char[] charArray = new char[string.length() * 2];     

    //The loop that will turn the string into characters.
    for (int i = 0; i < string.length(); i++)
    {            
     charArray[i] = string.charAt(i) ;
     charArray[i+1] = charArray[i];
     i++;
    }

    //Returning the characters as an array.
    return charArray;

2 ответа

Решение

Ваша логика копирования неверна. Вам нужно скопировать письмо из индекса i индексировать 2*i а также 2*i + 1, i++ в конце нет необходимости; это уже сделано в for петля. + Изменить

charArray[i] = string.charAt(i);
charArray[i+1] = charArray[i];
i++;

в

charArray[2*i] = string.charAt(i);
charArray[2*i+1] = string.charAt(i);
string.charAt(i)

неверно, должно быть

string.charAt(i/2)

Вы увеличиваете я в два раза каждый цикл.

Другие вопросы по тегам