Выключен на одну ошибку для строки зарядки
Предполагается, что этот метод принимает строку и выводит строку в виде символов, однако она должна быть в два раза больше. Пример: строка "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)
Вы увеличиваете я в два раза каждый цикл.