人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

java に関する質問です。

substring を利用して文字列の抜き出しを行っているのですが、

test = "0123456789";
substring( test ,11,12);

以上の処理を行うと当然エラーがでますが、文字がない場合に test に A という文字を入れたい場合はどうしたらいいでしょうか?

よろしくお願いいたします。

●質問者: zachouR
●カテゴリ:コンピュータ インターネット
✍キーワード:Java test エラー 文字列
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● b-wind
●17ポイント

例文は、

test.substring(11,12);

の間違いですよね?


文字が無い場合というのが何をあらわしているのかがよく分からないのですが、

test = "A";

ということでしょうか?

◎質問者からの返答

ああ!すいません、間違えました!

その通りです。test.substring(11,12);

の間違いです。

文字がないというのは、例えば文字列の切り出しを行った場合に、指定した場所に文字がなかった場合(testに入っているのは10文字だけなので)、なにか別の文字をtestに入れる事ができたらいいな、と思ったので質問してみました。


2 ● きゃづみぃ
●17ポイント

if (test.length >9) {

test ="A";

}else{

test.substring(11,12);

}

こんな感じになりますね。

◎質問者からの返答

ありがとうございます。

文字数を調べてやる方法も試してみます。javaは、このあたりは厳しそうですね、、、。


3 ● sight
●16ポイント

ええっと、こういうことでしょうか?

public class Test {

public static void main(String argv[]){

String test = "0123456789";

try{

System.out.println(test.substring(11,12));

}

catch(java.lang.StringIndexOutOfBoundsException e){

test = "A";

}

System.out.println(test);

}

}


Stringオブジェクトのsubstringで開始・終了インデックスの範囲外だった場合はIndexOutOfBoundsExceptionが発生されるので、それをひろって好きな処理をすればいいのでは?

◎質問者からの返答

ありがとうございます!

やはり、try catch が最適みたいですね。

助かりました。早速試してみます。


4 ● b-wind
●16ポイント

Exception を拾うのが確実ではありますが、Java は Exception の発生がコストが高いこととあくまで「例外」であることから、

if による分岐が適当と思います。

基本は2番の方と同じなのですが、条件判定が違っているようなので。

あと、substring 関数は元のString を変更しません。

if (test.length >= 11) {
 test = test.substring(11,12);
}else{
 test = "A";
}
◎質問者からの返答

ありがとうございます、これは安全そうですね!

文字数を数える方がやはり安全っぽいですね、、、。


5 ● hive7134
●16ポイント

try-catchは最適ではありません。

http://www.nextindex.net/java/perform/tips.html

(ロジック分岐のための例外処理 参照)

やはり文字数を事前に調べる必要があるのではないでしょうか?

三項演算子を用いれば多少すっきりさせることが可能です。

String test = "0123456789";
int beginIndex = 11;
int endIndex = 12;

test = test.length() >= endIndex ? test.substring(beginIndex,endIndex) : "A";
◎質問者からの返答

ありがとうございます。これはすっきりしていて、すぐに使えそうです!

助かります!


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ