私はそのようなプログラムを持っています:
import java.util.Scanner; import java.io.*;
class C { public static void main (String[] args) throws IOException{
System.out.println("Wpisz teks do zakodowania: ");
String tekst;
Scanner odczyt = new Scanner(System.in);
tekst = odczyt.nextLine();
System.out.println("Tekst odszyfrowany:" + tekst);
char[]alfabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int dlugalf=26;
System.out.print("Tekst zaszyfrowany:");
int a = 0;
for(int i=0;;){
System.out.print(tekst.charAt(a));
a++;
}
}
}
起動後、質問を表示し、テキストを入力するように求めます。次に、私が書いた記号が表示され、プログラムは文字列全体としてではなく、これらの文字を個別にロードする必要があります。しかし、それはエラーをポップアップ表示します:
Exception in thread "main" java.lang.StringIndexOut OfBoundsException: String index out of range: 10
at java.lang.String.charAt(Unknown Source)
at C.main(C.java:34)
空の文字列が原因です。どうすればそれを取り除くことができますか? 私はこのコマンドで試しました:
if (!tekst.isEmpty() && tekst.charAt(0) == 'R');
しかし、うまくいきませんでした。
間違いがありましたら申し訳ありません。私は英語があまりうまく話せません。