1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:35:28 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド98【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1171787388/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
96 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:35:55 ] BOMってのはUTF-16の話だ。
97 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:52:34 ] >>96 unicode.org/faq/utf_bom.html#29 > Q: Can a UTF-8 data stream contain the BOM character (in UTF-8 form)? > A: Yes, UTF-8 can contain a BOM. bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378911 UTF-8 decoder handling of byte-order mark has changed
98 名前:デフォルトの名無しさん [2007/03/06(火) 23:01:15 ] 原因がわかりまちた。 xmlファイルの文頭にこれ→<!--注釈-->をつけたことが原因でしたぁ〜ん (:D)| ̄|_ ごめんなご
99 名前:デフォルトの名無しさん [2007/03/06(火) 23:45:51 ] ソケットのストリームにおいて、コネクションを維持しながら 文字ストリームで通信した後にオブジェクトストリームで通信をしたいのですが、 文字ストリームのcloseメソッドの呼び出しって行う必要はあるのでしょうか?
100 名前:デフォルトの名無しさん [2007/03/06(火) 23:50:43 ] らくしてかれいにスレッド99コメント99げっとかしらかしら〜 (:D)| ̄|_
101 名前:99 [2007/03/07(水) 00:16:57 ] それは気がつかなんだ。 (:D)| ̄|_ ごめんなご
102 名前:48 mailto:sage [2007/03/07(水) 01:50:52 ] すれ違いだったんだろうか… ここまで見事にスルーされるとは思ってなかったぜ。
103 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 02:19:25 ] >>102 SWT関連なら専用スレがあるよ ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
104 名前:デフォルトの名無しさん [2007/03/07(水) 03:42:07 ] StreamTokenizerで 自然対数表示で書かれたdouble値を読み込むことってできないでしょうか? 例えば、2.52224e-005という文字列を読み込んだときに 0.00025224 と認識させたいのですが、 double a = st.nval; とすると、a=2.52224となってしまいます。
105 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:52:52 ] >>103 そこGUIだから
106 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:58:56 ] >>106 それ、常用対数。
107 名前:104 mailto:sage [2007/03/07(水) 04:00:20 ] >自然対数表示で書かれたdouble値を読み込むことってできないでしょうか? 自然対数表示じゃなくて、指数表示の間違いでした
108 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:17:32 ] (:D)| ̄|_ メインOSとデータをフォーマットしてしまったぜ! イェィ( ̄ー ̄)b
109 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:23:40 ] >>105 だから何?
110 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 04:40:06 ] >>107 ttp://java-house.jp/ml/archive/j-h-b/046214.html
111 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 05:04:04 ] >>105 ??GUIだから誘導されてるんじゃ・・・
112 名前:104 mailto:sage [2007/03/07(水) 05:25:00 ] >>110 ありがとうございます、解決しました〜
113 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:08:49 ] なんだよ1日たってみたら自演扱いかよ。 しかもわけわからんコテ扱い。 初めてこの板来てこれだしな。 プログラマってのはこんなにレベル低いのか? それともアホがここにすみついてんのか?
114 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:24:53 ] 自分が馬鹿なのを認識できないクズが一匹いますね
115 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:56:02 ] 誰? >>67 か?
116 名前:デフォルトの名無しさん [2007/03/07(水) 12:25:35 ] うっすら涙目の>>113 登場。
117 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:08:47 ] 入力ファイルから値を受け取りそれぞれのクラスで処理してその結果を 出力ファイルにだすっていうプログラムを作りたいんですけど 入力ファイルはどういうふううに作成すればいいのでしょうか? メモ帳からではないですよね?
118 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:20:27 ] >>113 ん、母体が大きくなるとアホも居ますわ。すまんこやけどスルーしたってください。
119 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:23:30 ] >>117 > 入力ファイルから値を受け取りそれぞれのクラスで処理して の部分が曖昧なのでなんともいえない。 メモ帳でも作れるかもしんないし、作れないかもしれない。
120 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:23:44 ] >>117 入力ファイルがテキストファイルならメモ帳で作っても問題ないんじゃない? というか、やりたいことに対して、その意味が自分で分かってないってことは ・・・・宿題? 宿題が分からない場合は 1.友人に相談 2.教師に相談 3.宿題スレで相談 こんな感じでリアルをもう少し活用してみましょう。
121 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:30:31 ] レス、ありがとうございます。 すみません言葉たらずでした… レコード形式?みたいにデータを入力していってその 値を受け取るって形にしたいのですがこういうのは メモ帳で作れます?
122 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:37:56 ] レコード形式って?
123 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 14:39:15 ] >>121 作れるかどうかメモ帳起動してみればいいんじゃないのかな?
124 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 15:54:56 ] >>113 ならプログラマやめれば?
125 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:07:27 ] Javaを用いて、既存のファイルやフォルダのコピー、移動を行いたいのですが、 どのような方法がありますか? Fileクラスにロードしたファイルを、renameTo()メソッドで移動をしてみたのですが、 ディレクトリをまたいだり、ルートフォルダが異なったりするとうまくいきません。 API仕様書には、環境に大きく依存すると書いてあり、確かにそのような気配がします。 (ちなみに、環境はWindowsXPです。) Runtime.exec()や、ProcessBuilderを用いてバッチ処理のような形で実現させるしかないのでしょうか? あるいは、java.ioパッケージを駆使するしかないのでしょうか? その場合は、どのクラスを使うと便利か、示唆していただけないでしょうか。
126 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:21:55 ] Jakarta Commons IOあたりにあるかとも思ったが、ないね。
127 名前:デフォルトの名無しさん [2007/03/07(水) 17:53:12 ] Swing関係のAPIに書かれてる 「警告: このクラスの直列化されたオブジェクトは、今後のSwing リリースと・・・略・・・XMLEncoderを参照してください。 」 の意味がよく分かっていないのですが 「XMLで書け」って意味でしょうか?
128 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:11:25 ] >>XMLEncoderを参照してください とりあえず嫁。なぜ読まん?
129 名前:デフォルトの名無しさん [2007/03/07(水) 18:14:28 ] >>128 既に何度も読んだ。マジで意味が分からん・・・。
130 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:17:51 ] シリアライズしてもいいけど、Serializableを使うとバイナリ互換問題が ついて回るので、RMIみたいな短期の場合にのみ使ってくれ。保存して おいて別バージョンのSwingで読めなくてもしらないよ。そういう用途に はXMLEncoder/Decoderを使ってくれ。
131 名前:デフォルトの名無しさん [2007/03/07(水) 18:26:48 ] 各環境に合わせてコンパイルし直せ さもなくばXMLEncoder使え って事であってます?
132 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:30:41 ] ちゃうちゃう シリアライズしたものをファイルとかに保存して、それ読み込んで使ったりすると JREのバージョンが変わったときに読めなくなる/使えなくなるよってこと。
133 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:34:29 ] >>131 うーん、そうじゃなくて、他のバージョンのJVM上にオブジェクトの シリアライズイメージを送ったとき、問題出るかもしれんよ、ということ。 コンパイルし直ししても、 JDK6の javax.swing.Hogehoge をJDK8 のJVM上に送ったとき、そこでインスタンスが復元出来ないかもしれないってこと。 具体的には、そのクラスの serialVersionUID が将来変えられる可能性があるということかな。
134 名前:デフォルトの名無しさん [2007/03/07(水) 18:34:56 ] >>132 お手数掛けました。 ありがとうございました。
135 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:37:58 ] >>126 あるだろう。コピーくらいなら。 Runtimeなんていらない。 java.ioだけでどうにかできるはず。 根性いるかも知れないけど。 まずFileクラスでフォルダを指定して、 フォルダの中をdir()で再帰的に調べて記憶しておく。 つぎに移動やコピー。 ここでは、移動(コピー)先フォルダを指定したら。 移動(コピー)先フォルダ名のパス文字列をつかってFileクラスでディレクトリ作成。 あとは同じディレクトリにファイルやサブディレクトリなどを再帰的にコピー。
136 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:38:41 ] >>129 SerializableがXMLEncoderに変わっただけ。 つうかググれ。
137 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:39:51 ] >>131 ここに答えが乗っている ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA#XML.E3.83.95.E3.82.A9.E3.83.BC.E3.83.9E.E3.83.83.E3.83.88.E3.81.AB.E3.82.B7.E3.83.AA.E3.82.A2.E3.83.A9.E3.82.A4.E3.82.BA
138 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:52:07 ] >>135 ファイルの中身だけコピーするならなんとかなると思うけど。 属性とか所有者とか、シンボリックリンクではコピー先にシンボリックリンクを作るとか、 そーゆー事まで考え出すと java.io だけじゃ無理のような。
139 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 20:43:09 ] >>136 おまえはその前に、リロード汁w
140 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 22:38:44 ] Mac OS X使ってます。 OS XにはAPIドキュメントというものはないんでしょうか? Eclipceで日本語のホバー表示をするために、 MergeDoc(mergedoc.sourceforge.jp/ )というのを入れたいんですが、 APIドキュメントというのが必要らしいです。
141 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 22:47:18 ] >>140 /System/Library/Frameworks/JavaVM.framework/Versions/バージョン/ Home/docs/
142 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:02:33 ] >>141 /System/Library/Frameworks/JavaVM.framework/Versions/バージョン/ Home/ まではあるんですが、docsフォルダがないです。。。
143 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:10:40 ] ああ、ADCからダウンロードしないとないかも。
144 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 23:13:57 ] www.apple.com/downloads/macosx/apple/macosx_updates/java2se50developerdocumentation.html これか?
145 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:00:56 ] ActionListener等ってFrameとかにimplementsして使うのが普通ですか? この方法だと自分のやりたい事がどうもスッキリとできないんです
146 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:10:24 ] オセロや将棋のプログラムを作りたいのですが、どのプログラム言語が適しているのか教えてください。 プログラムの知識は、どの言語でも使うif文とかfor文とかを最近覚えた程度の全くの初心者です。 数学は独学だけど大学程度の数学なら分かるつもりです。論文や専門書もかなり読みました。 アルゴリズムとか超興味あります。 しかし何から手をつければ良いのか検討が付かないのアドバイスをください。 ちなみに学生なのでPCを買うお金が無いので学校の5〜10年ぐらい昔の古いPCが開発環境です。
147 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:13:18 ] オセロや将棋程度ならなんでもOK。 強いて言えば、VBがユーザインタフェースを作りやすいけど、開発環境にお金がかかる。 Javaなら無料だけど古いPCでは厳しいか。
148 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:13:53 ] lisp
149 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:15:38 ] >>145 - 複数箇所で使い回すならクラス(場合によってはメンバークラス)。 - その場限りなら匿名クラス。 にしている。
150 名前:145 mailto:sage [2007/03/08(木) 00:22:34 ] >>149 具体的に言えば、 Aボタンを押したらBテキストフィールドから値を受け取り Cテキストフィールドを更新するといった処理を複数作る という事をしたいんですが、この場合はメンバクラスとして作るのがスマートですかね? おそらく匿名クラスや普通のクラスではややこしい書き方をしないと出来ないと思うので
151 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 00:33:13 ] >>150 フレームのメンバーになっているボタンやテキストへのアクセスが出来た ほうが便利だろうから、メンバークラスがよいように見える。
152 名前:145 mailto:sage [2007/03/08(木) 00:40:31 ] >>149 ,151 レスありがとうございます その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・ なんてすればさらにコードが読みやすくできるのかなぁ
153 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:11:06 ] >>138 パーミッションだけならJavaでもできる。 他は・・・ Runtimeとかかねえ Jakarta Commons VFSでにたようなことできなかったかな・・・
154 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 02:17:36 ] >>145 ,152 乗り遅れた… 個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み ttp://java.sun.com/developer/technicalArticles/javase/mvc/ ↑英語ですが…日本語でも山ほど資料はあるのでググってみて ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
155 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 03:55:02 ] >>111 よく読め。 GUIの話題なんて一言も振ってない。
156 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:03:14 ] その通り キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ GUIと間違えちゃいかん
157 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:21:08 ] APIリファレンスって印刷して使うものなの? ものすごい量になる悪寒
158 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 04:46:51 ] >>157 お前の想定している状況がイマイチ分からん。 シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合? 元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ? ネットワーク超えてたれ流すためでしょ? シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?
159 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 07:10:33 ] 永続的な目的云々もそうだが、ことさらSwingのAPIにだけシリアライズに よるバージョン問題のことが書いてある理由も謎だ。
160 名前:125 mailto:sage [2007/03/08(木) 08:04:27 ] >>126 >>135 >>153 返答ありがとうございます。 手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。 Swingが使えないのが残念ですが。 ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。
161 名前:デフォルトの名無しさん [2007/03/08(木) 10:01:01 ] ひとつのつながったテキストを区切って別々のページに保存したいときって どうすればいいですか?
162 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:02:30 ] >>153 6.0 のパーミッション操作も全部じゃないよ。 外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。
163 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:03:34 ] >>161 「別々のページに保存」ってのが具体的に何したいのかわからん。
164 名前:デフォルトの名無しさん [2007/03/08(木) 10:10:33 ] えと、100行のテキストがあったとして、10行ずつ区切って 別のファイルに保存ってことです。
165 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:16:31 ] 言ってる事をそのままコードにするだけだからどこがどう出来てないのか情報がないと教えようがない
166 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:19:44 ] java.sun.com/javase/ja/6/download.html にAPIドキュメント追加されてる。
167 名前:デフォルトの名無しさん [2007/03/08(木) 10:55:36 ] 今クローラーってのを作る課題なんですけど、リンク先をページから 拾ってきて、ページごとに保存しなくちゃいけないんです。 で、リンク先抜き出してソース落とすとこまではできたんですけど、 全部つながってひとつのファイルに保存されちゃうんで、それを 区切って保存したいってことです。
168 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:03:08 ] >>167 再帰的にやればいいんじゃね?
169 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:18:38 ] >>167 > 全部つながってひとつのファイルに保存されちゃうんで ……。つなげなければ良いんじゃね?
170 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:46:43 ] 何でつながるのかわかってないんじゃね?
171 名前:145 mailto:sage [2007/03/08(木) 12:33:17 ] >>154 レスありがとうございます >ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ 確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました そこでMVCという単語を絡めて検索した所 まさに今考えていた事が既に話し合われていた場所を発見する事ができました www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18201&forum=12&7 まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです 本当にありがとうございました ;D
172 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:21 ] 商品番号、日付、単価、数量 0001,20070308,1200,50 とテキストファイルに記入。 日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は 計算する処理を行うメソッドに渡す。 ということをしたいのですが可能でしょうか? 可能ならばやり方を教えていただきたいです。
173 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:10:59 ] >>167 そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex), Aliweb, WebCrawlerを調べてみな? まあ、見つけられたらの話だが・・・国内鯖で見つからんなら ttp://en.wikipedia.org/wiki/ で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど) AliwebとWebCrawlerは存命の筈だけど #あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")
174 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:13:46 ] >>172 屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ? 宿題スレのテンプレ持ってお引っ越ししましょうね?
175 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:14:21 ] >>172 split
176 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:17:22 ] 2chに宿題訊きにくるような奴と将来一緒に仕事したくないなあ
177 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:09:13 ] >>168 そして再帰的にやって 相互リンクで永久ループにハマってあぼーん
178 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:11:00 ] >>176 たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど 質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな〜
179 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 17:30:50 ] >>177 基底条件ってもんくらい分かってるだろ? でなきゃループ内で再帰やったとき止まらんw
180 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:32:06 ] 1つのjavaファイルに、複数の public class を記述すると、 コンパイルしたときに、$付きの class ファイルが生成されます。 こんな書き方ありなんでしょうか?
181 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:47:22 ] >>180 JVMの身にもなってみろ
182 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:16:30 ] >>180 あり。 > 1つのjavaファイルに、複数の public class を記述すると、 入れ子になったクラスなら $ とかがつくし、 トップレベルに public なクラスが複数あったら コンパイルエラーにしないと言語仕様に反する。
183 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:57:55 ] Javaのことはまったくわかりません。 場違いだったら構わず指摘してください。よろしくお願いします。 www.strangepuzzle.com/jnetcube.html このサイトにあるルービックキューブ用のタイマーを 動かしたいのですが、ダウンロードしたあと 何をしたらいいのかまったくわからないんです。 どうすればタイマーを動かすことができるのでしょうか。
184 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:09:20 ] >複数の public class コンパイラ通るのか!?
185 名前:デフォルトの名無しさん [2007/03/08(木) 21:10:26 ] 質問させてください。 例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。 例 1レコード目 1 トップページ 2レコード 2 サブページ1 3レコード 3 サブページ2 HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。 通常ならリクエストの形は hogehoge.jsp?id=2 とかだと思います。 これをクエリを使わないで/で区切ったリクエストに応じて表示する方法はないでしょうか? 例えば hogehoge.jsp/2/ ↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか? 2ちゃんねるみたいに pc11.2ch.net/test/read.cgi/tech/1173026128/ というふうにクエリ使わないで/だけでやる方法をさがしています
186 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:46:42 ] javax.servlet.http.HttpServletRequest#getPathInfo()
187 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:14:40 ] javaで英単語教材を作ってます。 今は、ボタンを押すごとに //空所補充問題文 The rocket launch had to be ( ) because of unexpected bad weather. //空所に入る選択肢 ・aborted ・allotted ・ascribed ・accumulated といった感じで、50個ぐらいある問題文と選択肢のセットをテキストファイルから画面に readLine()で表示させているのですが、今の方法だとテキストファイルに並んでいる 順番でしか表示されません。やりたいことは次のとおりです。 1.この問題文と選択肢のセットをランダムな順番で表示させたい。 2.選択肢も、常に同じ4つの単語ではなくランダムな組み合わせで表示させたい。 ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが これも問題ありでしょうか?よろしくお願いします。
188 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:45:19 ] import java.io.*; import java.util.*; public class EnglishTest1 { public static void main(String[] args) throws IOException { String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"; ArrayList<Question> questions = new ArrayList<Question>(); BufferedReader r = new BufferedReader(new StringReader(dataBody)); try { for (String line; (line = r.readLine()) != null;) { ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";"))); Question q = new Question(); q.questionText = data.remove(0); q.choices = data; q.correctAnswerNumber = 0; questions.add(q); } } finally { r.close(); } Random random = new Random(); while (questions.size() > 0) { Question q = questions.remove(random.nextInt(questions.size())); System.out.println(q.questionText); } } } class Question { String questionText; ArrayList<String> choices; int correctAnswerNumber; }
189 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:46:11 ] あとは自分で。
190 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:59:52 ] すまん Collections.shuffle(List) の方がいいな import java.io.*; import java.util.*; public class EnglishTest2 { public static void main(String[] args) throws IOException { String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n" + "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"; ArrayList<Question> questions = new ArrayList<Question>(); BufferedReader r = new BufferedReader(new StringReader(dataBody)); try { for (String line; (line = r.readLine()) != null;) { ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";"))); Question q = new Question(data.remove(0), data, 0); questions.add(q); } } finally { r.close(); } Collections.shuffle(questions); for (Question q : questions) { System.out.println(q.questionText); for (String choice : q.choices) System.out.println(" - " + choice); } } } class Question { final String questionText; final List<String> choices; final int correctAnswerNumber; public Question (String questionText, List<String> choices, int correctAnswerNumber) { this.questionText = questionText; this.choices = Collections.unmodifiableList(choices); this.correctAnswerNumber = correctAnswerNumber; } }
191 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:09:34 ] Generics関係でArrays.sortの質問です。 やじるしのところで警告が出てしまいます。 抑えるにはどうすればいいでしょうかよろしくお願いします。<(_ _)> ArrayList<Sensyu> al = new ArrayList<Sensyu>(); al.add(new Sensyu("tako", 20 ));// ArrayListにデータを追加 al.add(new Sensyu("yuura", 30 )); al.add(new Sensyu("ponko", 53 )); Object[] oa = al.toArray();// 配列に変換 DataComparator dcom = new DataComparator(); Arrays.sort( oa, dcom); //←‥ここで警告:[unchecked] 無検査変換が出てしまいます。 ---- ---- ---- ----- public Sensyu(String namaeMoji, int ten ){ namae = namaeMoji; tokuten = ten ; } ---- ---- ---- ----- public class DataComparator implements java.util.Comparator{ public int compare(Object o1, Object o2){ return ((Sensyu)o2).tokuten - ((Sensyu)o1).tokuten; } }
192 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 01:31:39 ] >>191 public class DataComparator implements java.util.Comparator<Sensyu> {
193 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:41:11 ] >>192 さんありがとうございます。 でもまだうまくいきません‥ public class DataComparator implements java.util.Comparator<Sensyu> { になおして中身を public int compare(HairetuArraysTest.Sensyu o1, HairetuArraysTest.Sensyu o2) { return o2.tokuten - o1.tokuten; } ---- ---- ---- ----- Arrays.sort( oa, dcom); の部分を ↓ Arrays.sort( (Sensyu[]) oa, dcom); //この行番号でエラーメッセージが出てしまう。 するとコンパイル時に何の警告も出ません。しかし、 実行すると Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHairetuArraysTest$Sensyu; というメッセージが出てしまうのですが、どうしましょ?(o・・o)/~
194 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 02:49:47 ] toArray で Object[] に変換してるから。 Sensy[] に変換するよう引数をとる toArray の方を使いましょう。
195 名前:193 mailto:sage [2007/03/09(金) 03:05:33 ] >>194 さんありがとう toArray public <T> T[] toArray(T[] a) のことですね、 Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );
196 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 04:09:57 ] >>195 new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、 もしサイズが足りなければ新たに確保してくれる。 APIリファレンスのtoArrayの項目をきちんと読むんだ。