2016-10-29 7 views
-2

たとえば、サイズが5の文字列があり、string.atChar(7)のような処理を行うと、エラーとして返される代わりにそのデフォルトを0にできますか?outofboundエラーを0にデフォルト設定する方法はありますか?

+0

独自の方法をお探しですか?あるいは 'charAt'を捕まえようとしますか? – Li357

+0

(number> 5)number = 0の場合は、 の場合はstring.atChar(number)に入力した数値をフィルタします。 –

+5

なぜそれをしたいですか?通常は、早急に失敗することが望ましく、後で多くの場合間違った結果が生じることがあります。そのような振る舞いをデバッグするのは苦痛です。 – Robert

答えて

1

(私は)あなたが(のcharAtを意味すると仮定)

独自のcharAt()メソッドを作成し、文字列ユーティリティクラスの中に置くことができます。

pulbic class MyStringUtility { 
    public static char charAt(String string, int index) { 
     if (index >= string.length) index = 0; 

     return string.charAt(index); 
    } 
} 

そしてちょうどMyStringUtility.charAt(string, 7)

0
を呼び出します

charAt()を意味すると仮定すると、charAt(7)コードの周りにtry catchブロックを配置します。 catchブロックで、メソッドの0を返します。

try { 
    string.charAt(7); 
} catch (IndexOutOfBoundsException e){ 
    return 0; 
} 

これはうまくいくはずです。 :)

関連する問題