私はJavaで単語を逆にする方法を探しています。 これは私のコードであり、エラーが発生します。
誰かが理由を説明できますか?
import java.util.Scanner;
public class Robot {
public static void reverse(String text) {
int leng = text.length();
int i = 0;
while (leng-i>=0){System.out.print(text.charAt(leng-i));
i++;
}
}
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Type in your text: ");
String text = reader.nextLine();
System.out.print("In reverse order: ");
reverse(text);
}
}
単語の順序が逆になると思っていましたが、そうではありません。
回答 2 件
あなたの問題はここにあります:
int leng = text.length();
Javaの配列は0インデックスが付けられています。つまり、文字列の最後の文字がインデックス(
text.length()-1
)、text.length()
の代わりにだから、あなたは
leng
を設定することができますtext.length()-1
へ 、またはi
を設定できます1
へ
そのはず
そうでなければ、あなたは
StringIndexOutOfBoundsException
を取得しますtext.length()
以来 は有効なインデックスではありません。少し短く(そしてより涼しく)するには、次のように書きます。
ただし、通常は