-1

私はいくつかの個別のパートを含むクラスの課題に取り組んでいますが、これを除いてすべて完了しています。ユーザーから文字列入力を取得し、各文字の間にアスタリスクを挿入するループ (できれば for ループ) を作成する必要があります。私はこれに完全に困惑しているので、誰かが私に始めるための助けをくれれば幸いです.

ここまで思いついた

    } else if (choice.equalsIgnoreCase("C")) {
        System.out.print("Enter text here: ");
        String orig = input.nextLine();

        // To use for asterisk insertion
        int x = 1;
        int y = 2;

        for (int length = orig.length(); length > 0;) {
            orig = orig.substring(0,x) + "*" + orig.substring(y);
            x = x + 2;
            y = y + 2;
        }

    } 

それは問題なくコンパイルされますが、テストしてテキストを入力すると、スレッド「メイン」で例外が発生します java.lang.StringIndexOutOfBoundsException: String index out of range: 5

4

3 に答える 3

0

必要がない限り、変数を再利用しないでください。コードが複雑になり、読みにくくなるだけです。

    String orig = "my test";
    StringBuilder result = new StringBuilder();

    for (int i = 0; i < orig.length() -1;i++) {
        result.append(orig.charAt(i));
        result.append('*');
    }
    result.append(orig.charAt(orig.length()-1));
于 2013-09-29T21:58:34.530 に答える
0

このプログラムを試して、文字列の各文字の間にアスタリスクを追加してください。

int leng;
Scanner sc= new Scanner(System.in);
System.out.println("enter the name");
String name=sc.nextLine();
leng=name.length();
char c[]=new char[leng];
for(int i=0;i<=leng-1;i++){
    c[i]=name.charAt(i);

    System.out.print(c[i]);
    if(i<leng-1)
        System.out.print("*");
}
于 2015-01-21T07:32:06.833 に答える