電子書籍の厳選無料作品が豊富!

Javaについての質問です。

Objectの中身に指定した値が含まれてるかどうかを判断したいのですが、
どうすれば良いかわかりません。。

どうかお力添えをお願いします。

----------------------------------------------------

Object objの中には0か1か2が入ります。
(中身は[0]=1,[1]=2となっていたり[0]=0となっていたりします)

1か2、どちらかが含まれている場合、という条件にしたいのですが…

hash等を使って、objの中をfor文で比較していけば良いのかな、
と思うのですが、Objectやhashについてちゃんと分かっていないので、
どういう風に書けばいいか分かりません。。

サンプルになるようなソース、分かりやすい解説、
ヒントでもいいので、どうかお願いいたします。

A 回答 (2件)

変数objにはStringの配列が代入されているという理解でいいですか?


もしそうなら、String[] str = (String[])obj; のようにキャストすればいいだけです。
    • good
    • 0
この回答へのお礼

無事、できました!
ありがとうございました。

お礼日時:2011/01/11 09:06

> Object型と文字の比較



質問文のどこにも文字との比較はないようです。

> Object objの中には0か1か2が入ります。

Objectと書いてあるのがjava.lang.Objectのことならば、その中に数値を入れるような使い方はあまりお勧めできません。Objectにしたい理由が特にないのであれば、intとかIntegerとかを使うべきです。

> (中身は[0]=1,[1]=2となっていたり[0]=0となっていたりします)

この行も意味不明です。もしかして何かの配列でしょうか?

この回答への補足

ご回答、ありがとうございます。
補足します。

> 質問文のどこにも文字との比較はないようです。
> Objectと書いてあるのがjava.lang.Objectのことならば、その中に数値を入れるような使い方はあまりお勧めできません。

java.lang.Objectのことです。
中に入っているのは、数値じゃなくて、"0"、"1"というStringです。
""をつけていないので、数値になってしまいますね。すいません。。

ソースでは、

Object obj = form.get(***);

というようになっていて、
***はWeb画面のマルチチェックボックスの値が入っています。

マルチチェックボックスは、

□AA □BB □CC

となっていて、eclipseでデバッグをしてobjの中を見ると、
AAにチェックが付いているときは、objは[0]="0"となり、
BBにチェックが付いているときはobjは[0]="1"となっています。
AAとCCにチェックが付いているときは、objは[0]="0"、[1]="2"となります。

それで、BBにチェックが付いている、または、CCにチェックしている場合に
処理を行いたいので、そのIF文を書きたいのです。

中を見ると、上記のようになっているので、

String str [] = オブジェクトの中身をセット

for(i=0;i<str.length:i++){
if ("0".equals(str[i] || "1".equals(str[i]) {
// 処理記述
}
}

とやればいいかなーとも思ったのですが、
オブジェクトの中身をどうやってセットすればいいのか
わからず、質問しました。

補足日時:2011/01/08 11:19
    • good
    • 0
この回答へのお礼

改めましてご回答、ありがとうございました!

お礼日時:2011/01/09 13:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報