Der Problemcode ist unten, wenn Sie die gesamte Hauptmethode benötigen, um mir zu helfen, bitte fragen Sie. Der Code entspricht, aber nicht wie erwartet ausgeführt. Ich versuche, den Code ein Ausrufezeichen zurück zu melden, wenn die Zahl außerhalb der Grenzen/größer als die letzte Position des Quelltexts ist, die eine Zeichenfolge ist, die der Benutzer eingibt, so dass die Länge nicht vordefiniert werden kann. Ausnahme ist 'StringIndexOutOfBoundsException'String-Index außerhalb der Grenzen Ausnahme, auf einer if sonst-Anweisung
TDLR num ist ein int, Quelltext ist ein String, beide sind Eingaben. Ausnahme: Wenn Code ein '!' stattdessen.
import java.util.Scanner;
public class Temp {
public static void main(String[] args) {
Scanner sc;
int result, num= 0, end = -2, temp, infolost, count;
String word, sourcetext, answer, space= " ";
String sourcetext2, temp2;
char input, result2, chalost;
sc = new Scanner(System.in);
System.out.println("please enter sourcetext");
sourcetext = sc.nextLine(); // user inputs source text
sourcetext = sourcetext.toLowerCase(); // converts sourcetext into lowercase
System.out.print("Would you like to 1 encrypt, or 2 decrypt?");
answer = sc.next(); // user inputs choice
if (answer.equals("1")||(answer.equals("encrypt"))) {
System.out.println("Please enter at least one word to encrypt");
word = sc.next(); // user inputs one word
for (int i= 0; i < word.length(); i++) {
temp = sourcetext.indexOf(word.charAt(i)); // uses index to convert char positions int num
System.out.print(space + temp + space);
}
System.out.print(space + end);
}
else if (answer.equals("2")||(answer.equals("decrypt"))) {
System.out.println("Please enter digits, with one space between each. End with -2");
while (num > -2) {
num = sc.nextInt(); // num to decrypt
if (num > -2) {
result2 = sourcetext.charAt(num); // num converted into characters
System.out.print(result2);
} else if (num > sourcetext.length()) {
System.out.print("!");
} else if (num<0) {
System.out.print("end");
}
}
}
}
}
post complete code 'StringIndexOutOfBoundsException' tritt auf, wenn Sie versuchen, auf Index zuzugreifen, der nicht im Bereich Ihrer Zeichenfolge ist. –
Sie müssen vollständigen Code bereitstellen, möglicherweise mit Stack-Trace. – Areca
Sie müssen lernen, einen Stack-Trace zu interpretieren und einen Debugger zu verwenden, anstatt uns zu bitten, Ihren Code für Sie zu debuggen. – Raedwald