Я пытаюсь создать код, который принимает любую строку и возвращает ее мне обратно, пропуская каждый третий символ и включая самый последний символ.
Пример: «123456789» должно возвращать «963» и «Привет, мир!»должен вернуть "! r lH"
import java.util.Scanner;
public class cypher {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String str = scnr.nextLine();
String reverse = "";
System.out.println(str.length());
for (int i = str.length() - 1; i >= 0; --i) {
reverse = reverse + str.charAt(i - 3);
}
System.out.println(reverse);
}
}
Код выше - это то, что я имею до сих пор.Однако, когда я запускаю этот код, я получаю это сообщение об ошибке: «Исключение в потоке» main »java.lang.StringIndexOutOfBoundsException: Строковый индекс выходит за пределы диапазона: -1»
Я не понимаю, потому что длина строки10 так почему же он не может этого сделать?Может ли кто-нибудь объяснить мне это и дать мне предложение, как это исправить?