いつもお世話になっております。
Vector vector = new Vector();
String array[] = new String[11];
vector.addElement(array)
for( int i = 0; i1 < vector.size(); i++)
{
String str = (String)vector.get(i);System.out.println(str);
}
11の配列にデータ(String)を入力し(ここでは省略)、11すべてをVectorへいれ、String型で取り出したいのですがエラーになります。
System.out.println(vector1.get(i));だと文字化けします。
アドバイスお願いします。そういったことを書いてあるサイト等ご存知でしたらお願いします。
No.4ベストアンサー
- 回答日時:
>11の配列にデータ(String)を入力し(ここでは省略)、11すべてをVectorへいれ、String型で取り出したいのですがエラーになります。
>しかしながらどうしてもうまくいきません・・
>試していますがうまくいきません。
>勉強になりました。しかしながらまだうまくいきません。
エラーが出るのなら、エラーの内容を書きましょう。
「うまくいきません。」と書かれても、それを見たって何がどううまくいかないのか分かりません。
それにもしかしたら質問者さんが
「うまくいかない。」
と思っているだけで、javaとしては正しい動きをしているかもしれません。
質問の仕方として、
・どうしたい。
・実行した内容。可能ならばソースをつける。
・実行結果。エラーが出るならエラーの内容を全てつける。
・自分で試したことがあるのならその内容と結果。
・自分の環境(OS、javaのバージョン、ミドルのバージョンなど)
#個人的には
#「お礼」で「ありがとうございました。できました。」
#と書くよりは解決した内容をまとめて書いて
#同じように悩んでいる人の助けになるようにするのがいいと思う。
では本題。
>11の配列にデータ(String)を入力し(ここでは省略)、
>11すべてをVectorへいれ、String型で取り出したい
ということなので、きっと
vecotr.get(1);
とすると
array[1]
の文字列が取得したいんですよね?
以下上記仮定より
配列arrayの全要素をvectorにセットするには
for(int i = 0;i < array.length;i++){
vector.add(array[i]);
}
とします。
逆に文字列をvectorから取り出して表示するには
for(int i = 0;i < vector.size();i++){
System.out.println(""+i+"番目の要素:["+(String)vector.get(i)+"]");
}
とします。
で、JAVAのAPIは読みましたか?
読んでいただくと分かると思いますが、
Vectorクラスのget(int i)メソッドで返ってくるのは
Object
です。
ですので文字列として扱いたいのならStringにキャストしてあげないといけません。
(いや、暗黙的にtoString()が呼ばれるか?あっ、でも配列オブジェクトとして突っ込んでるから、文字化けに見えるのか。)
これまたAPIを読んでいただくとわかるのですが、
VectorクラスのaddElement(Object obj)メソッド
は
指定の要素を最後に追加し…
なので、引数のobjは「1つの要素」として扱われます。
addElementの引数にarrayを指定すると、Vectorの最後番目に「配列まるごと」を入れていることになります。
ですので取り出すときには#3さん、#2さんの仰るようにString配列にキャストしてあげないといけません。
以上長々と失礼しました。
pcbeginner様、アドバイスありがとうございました。
JAVAのAPIを読んで自分なりに納得しました。
ClassCastException がエラーとして表示されていました。
質問の仕方が悪く申し訳ありませんでした。今後気をつけます。
No.3
- 回答日時:
vector.addElement(array);
for (int j = 0; j < vector.size(); j++) {
String[] str = (String[]) vector.get(j);
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
こんなに取得すればどうですか?
No.2
- 回答日時:
?
Vector.addElement(String[])
だと、Vectorに入るのはString[]ではないの?
なので、取り出すときには、
String[] str = (String[])vector.get(0);
System.out.println(str[1]);
という風に、String[]型で取得して、入れた時の範囲を超えない配列番号でアクセスしないといけない。
配列の中身を自動でVectorのアイテムにしてくれるわけではないからね。あくまで、addElementした時の型で入っている。
No.1
- 回答日時:
Vector.addElement()の使い方が間違っています。
for(int index = 0; index < 11; index++) {
vector.addElement(array[index]);
}
細かく書かれていたのでもう正解書いちゃいますけど、どのように間違っていたのか、御自分でちゃんと理解してから進んでくださいね。
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
http://www.wakhok.ac.jp/~tatsuo/kougi99/
http://www.gimlay.org/~javafaq/
keroro001様 早速ありがとうございます。
しかしながらどうしてもうまくいきません・・
うまくいきましたらご連絡します。
取り急ぎお礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
main(String[] args) の args...
-
この警告はどうすれば?
-
Javaで文字と数字が混ざったも...
-
【Ajax通信&Java】配列の受け取...
-
2次元リスト
-
ArrayListからBean配列に値をセ...
-
Javaで文字を漢字であるか否か...
-
java(バブルソート/単純挿入ソ...
-
選択した項目を隣のリストへ移動
-
JavaBeansの配列の値取得方法に...
-
C言語でunsigned char配列を連...
-
javaでEUC-JP文字列→UTF-8への変換
-
Javaには、構造体はないんですか?
-
コンストラクタと多重度
-
cloneメソッドについて (java)
-
java
-
javamailで複数人にメールを送...
-
Java 配列に1から25以外の値が...
-
Struts:可変個数のテキストボ...
-
System.err. printlnとSystem.o...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】ハッシュテーブル(連想...
-
Javaで文字と数字が混ざったも...
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
main(String[] args) の args...
-
C言語でunsigned char配列を連...
-
配列で、値の入っている要素数...
-
C#で動的配列Listの中身をListB...
-
javaで大容量テキストファイル...
-
javaについて
-
javamailで複数人にメールを送...
-
java
-
同じ配列またはクラスを、2回...
-
ページング
-
動的配列確保
-
Javaで文字を漢字であるか否か...
-
csvファイルを2次元配列に格納
-
セッションを使ったint型の値の...
-
javaでEUC-JP文字列→UTF-8への変換
-
『args[]』とは?
おすすめ情報