0

私のコードが私に問題を引き起こしている理由や場所を誰でも見ることができますか?私は範囲外の文字列インデックスを取得しています:-1エラー。

私がやろうとしているのは、GUIを介してユーザーから入力を取得し、その入力を取得して、数字、つまり1、2、3が含まれているかどうかを確認し、それらを文字列(「1」、「2」、 「3」)、それらを文に置き換えることによって。

したがって、この文 ( I have 9 cats and 1 dog ) は ( I have nine cats and one dog ) になります。

私が何を間違っているのか、または私がやりたいと思っているのが合法的なプログラミングであるかどうかはわかりません。

みんなありがとう!!

private String getResultStr()
{
    /*** Local Variables ***/

    StringBuffer result;
    String userInput;
    int digit;
    int count;
    String finalResult = "";
        String digitAsStr;

    /*** Instantiate ***/

    result = new StringBuffer();

    /*** Extract Digits (if any) ***/

    userInput = txtInput.getText();
    result.append( userInput );

    count = 0;

    while ( count < result.length() )
    {

        for ( int i = 0; i < result.length(); i++ )
            if ( result.charAt( i ) >= '0' || result.charAt( i ) <= '9' )
            {
                digit = result.charAt( i );
                digitAsStr = digitToString( digit );
                result.deleteCharAt( i );
                result.insert( i - 1, digitAsStr );
            }

        count++;
    }

    finalResult = result.toString();

    return finalResult;

}
4

3 に答える 3

1

から反復を開始する for ( int i = 0; i < result.length(); i++ )と、次のようになります

result.insert( i - 1, digitAsStr );
于 2013-04-24T02:47:58.880 に答える
0

あなたのライン

result.insert( i - 1, digitAsStr );

反復 0 では、-1 のインデックスにアクセスしようとします。

于 2013-04-24T02:49:32.533 に答える
0

あなたの if ステートメント: if ( result.charAt( i ) >= '0' || result.charAt( i ) <= '9' )should be:if ( result.charAt( i ) >= '0' && result.charAt( i ) <= '9' )そうでなければ、すべてが受け入れられます。

于 2013-04-24T02:46:36.830 に答える