「decrpytに数字を入力する」と尋ねられたときに-2を入力するとwhileループが終了し、その後result2(復号化された単語)が出力されます。代わりに-2がエラー を生成します。 'java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です。-2'復号化中のエラー
これをバイパスするにはどうすればよいですか? -2を入力すると
import java.util.Scanner;
public class Decrypt {
public static void main(String[] args) {
Scanner sc;
int result, input2, num, end = -2;
String word, sourcetext, answer, encrypt = "1", decrypt="2";
char input, result2;
sc = new Scanner(System.in);
System.out.println("please enter sourcetext");
sourcetext = sc.nextLine();
System.out.print("Would you like to 1: encrypt, or 2: decrypt?");
answer = sc.next();
System.out.println("please enter numbers to decrypt");
while (answer.equals(decrypt)) {
num = sc.nextInt(); // number to decrypt
result2 = sourcetext.charAt(num); // num decrypted
if (num <= end) { // int end = -2
System.out.print(result2);
}
}
}
}
だけ入力された番号は、NUM、行の前にゼロを下回っているかどうかをチェック '結果2 = sourcetext.charAt(NUM);'またはtry..catchを使用する –
まだ例外がスローされています 'java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です-2' – Button
文字列のインデックスとして-2がありません –