Я пытаюсь создать код, который печатает «VALID ENTRY», если ввод начинается с «Today» и заканчивается «MLIA» (регистр не имеет значения).Если этого не произойдет, то будет напечатано «НЕПРАВИЛЬНОЕ ФОРМАТИРОВАНИЕ, ПОПРОБУЙТЕ ДРУГОЕ ПРЕДСТАВЛЕНИЕ».По какой-то причине программа продолжает выдавать мне ошибку, выходящую за границы, и я не могу понять, почему.
Когда я изменил код подстроки на sub.substring(0,1)
, чтобы проверить его, я все еще выдавал ошибку,так что это не проблема.Я также попытался добавить значение символа для каждой буквы, чтобы определить, что это за слово, но оно тоже не сработало.
public class submit{
public static void main(String[] args) throws IOException{
Scanner scanner = new Scanner(new File("submit.txt"));
int trials = scanner.nextInt();
int total = 0;
for(int x = 0; x <= trials; x++){
String sub = scanner.nextLine();
sub = sub.toLowerCase();
if(sub.substring(0,5) == "today") //I only have it set up to find "today"
System.out.println("VALID ENTRY");
else
System.out.println("INCORRECT FORMATTING, TRY ANOTHER SUBMISSION");
}
}//end of main
}//end of class
Ввод:
5
ToDAY, I went to school. mlia
Hehehe today mlia this shouldn't work
Today, I went to a programming contest. Hehe. MLIA
TODAYMLIA
T0day is a brand new day! MLIA
Ожидаемый вывод должен быть:
VALID ENTRY
INCORRECT FORMATTING, TRY ANOTHER SUBMISSION
VALID ENTRY
VALID ENTRY
INCORRECT FORMATTING, TRY ANOTHER SUBMISSION
Фактический объем производства:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.substring(String.java:1963)
at submit.main(submit.java:15)