-4
Mein Programm soll schlechte Wörter in einer bestimmten Eingabe finden, aber manchmal bekomme ich einen Fehler außerhalb der Grenzen. Was ist die Ursache für diesen Fehler?Index oder String außerhalb der Grenzen Ausnahmefehler
/* Andrew Woan - Alien Message Board Project - Period 1 */
import java.lang.Math;
import java.util.Scanner;
public class Alien {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int dollars = 0;
int qey = 0;
int carrots = 0;
System.out.println("Enter a message board post:");
String post = scan.nextLine();
String[] parts = post.split("-");
String username = parts[0]; // Alien's Username
String message = parts[1]; // Alien's Message
System.out.println(username + "-" + message);
int space = 0;
int anotherspace = message.substring(space, message.length()).indexOf(" ");
while (anotherspace != -1) {
String badword = message.substring(space, space + anotherspace);
if (badword.equals("qey")) {
qey++;
}
if (badword.equals("^^")) {
carrots++;
}
if (badword.equals("$")) {
dollars++;
}
space = +anotherspace + 1;
anotherspace = message.substring(space, message.length()).indexOf(" ");
}
char lastdollars = message.charAt(message.length() - 1);
char seconddollars = message.charAt(message.length() - 2);
char lastqey = message.charAt(message.length() - 1);
char secondqey = message.charAt(message.length() - 2);
char thirdqey = message.charAt(message.length() - 3);
char fourthqey = message.charAt(message.length() - 4);
char lastcarrots = message.charAt(message.length() - 1);
char secondcarrots = message.charAt(message.length() - 2);
char thirdcarrots = message.charAt(message.length() - 3);
if (((lastcarrots == '^') && (secondcarrots == '^') && (thirdcarrots == ' '))) {
carrots++;
}
if (((lastqey == 'y') && (secondqey == 'e') && (thirdqey == 'q') && (fourthqey == ' '))) {
qey++;
}
if (((lastdollars == '$') && (seconddollars == ' '))) {
dollars++;
}
if (qey > 0 || carrots > 0 || dollars > 0) {
System.out.println("");
System.out.println("Results:");
System.out.println("");
System.out.println("BAD");
System.out.println(username);
System.out.println("^^: " + carrots);
System.out.println("qey: " + qey);
System.out.println("$: " + dollars);
} else {
System.out.println("");
System.out.println("Results:");
System.out.println("");
System.out.println("CLEAN");
}
}
}
Hallo, willkommen auf StackOverflow! Die Gemeinschaft wird Ihnen gerne helfen, da wir hier sind, um zu lernen, wie ich bin und zu lehren, wie es viele erfahrene Benutzer jeden Tag tun. In diesem Zusammenhang empfehle ich Ihnen dringend, die [Richtlinien] (https://stackoverflow.com/help/how-to-ask) zu lesen. Dadurch wird Ihre Frage klar und hoffentlich auch für die Community nützlich. So viele Menschen können aus Ihren Zweifeln lernen, desto besser. Genießen Sie Ihren Aufenthalt und lassen Sie Ihre Motivation nicht untergehen! – Worice
Sie konnten die Zeichenfolge nicht in Leerzeichen aufteilen und dann jedes Element gegen die Sperrliste prüfen – jrtapsell