Во-первых, вы, вероятно, хотите, чтобы ваше среднее состояние было index > 0
, а не index <= nameArray.length
(что должно всегда быть истинным, даже если вы вводите отрицательные числа).
Во-вторых, это массив символов , к которому вы обращаетесь? Если это так, то, как я уверен, вы знаете, nameArray[index]
относится к символу , а не к строке.
(Также, как указывает bobbymcr , верхний индекс в массиве из 28 элементов - 27, а не 28.)
Для печати подстрок вы должны сначала инициализировать String
, используя массив символов, , а затем распечатать все меньшие подстроки, используя substring
.
Например:
private static void printSubstrings(String input) {
for (int length = input.length(); length > 0; length--) {
System.out.printf("%d %s\n", length, input.substring(0, length));
}
}
Тогда, если nameArray
является char[]
, вы можете использовать конструктор String(char[])
для перехода к этому методу:
printSubstrings(new String(nameArray));
Пример ввода:
char[] nameArray = new char[] { 'E', 'x', 'a', 'm', 'p', 'l', 'e' };
printSubstrings(new String(nameArray));
Выход:
7 Example
6 Exampl
5 Examp
4 Exam
3 Exa
2 Ex
1 E