- - PR -
JSPよりStringTokenizerを使う方法
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-03 16:48
ResultSet かなにかと勘違いされているような...。 この場合ですと毎回 hasMoreTokens() を呼ぶなんてことをせずに countTokens() が 3(以上)を返すかどうかを調べれば済む話ではないでしょうか。 | ||||||||
|
投稿日時: 2004-03-03 17:39
みーちくです。
おばけさん、びしばしさん 返信ありがとうございます。
おばけさん。 丁寧な説明ありがとうございます。 私はすごく勘違いしておりました。これで、ようやく納得できました。
びしばしさん。 そういうチェックのやり方もあったのですね。 勉強になりました。 皆様、ありがとうございました。 | ||||||||
|
投稿日時: 2004-03-03 18:14
問題が解決されたようですが、ここで一つクイズを 問題: 次のように、StringTokenizerで文字列中の全てのトークンを取り出す場合、 もっとも効率がよいのはどれ?
| ||||||||
|
投稿日時: 2004-03-03 18:32
unibon です。こんにちわ。
#チャチャですが。
解答: どれも(開発)効率が悪い。 私は StringTokenizer を使って一発でうまくいったためしがないので、地道に String.indexOf などを使って自前で解析したほうがまだ良いのでは、と考えています。 処理効率なら 1 ? ん?ヒッカケか? | ||||||||
|
投稿日時: 2004-03-03 19:30
4. String#split() を使う。
ってのは問題の前提条件に沿いませんか、そうですか | ||||||||
|
投稿日時: 2004-03-03 19:33
あ、そういうやり方もありますね。 いっつもwhile(st.hasMoreTokens())...って感じのコードを書いてたので、気付き ませんでした | ||||||||
|
投稿日時: 2004-03-04 09:41
Wataです。
まったく同感です Tigerならjava.util.Scannerを使うのもいいかも # まだ使ったことないけど... いちおう、答えですが 私の環境でのあてにならないマイクロベンチ-マークテストの 結果では1が最もはやいです。 しかし、2との差は(トークンの総数がとてつもなく大きくない限り) 無視できるので、コードが見やすくなるほうを使ってください。 また、2はループの中でデリミタの変更が行われると破綻します。 3は2乗オーダーの計算量になるので、トークン総数が多くなると 致命的な遅さを発揮するので、絶対にやらないで下さい。 以上です。ひねりがなくてスイマセン... | ||||||||
|
投稿日時: 2004-03-04 13:32
私が知っている、テキストで保存したデータのパースのやり方を挙げて
おきます。 1.java.text.MessageFormat#parse()を利用する。 2.java.util.regexpパッケージその他の正規表現ライブラリを利用する。 3.JavaCCを使ってパーサを書く。 4.XML形式でテキストデータを記述して、パース処理はXMLパーサ等に任せる。 個人的には、最近はバインディングフレームワークを利用して4にしてしま うことが多いです。お勧めです。 1は、C言語のsscanf()と似たような機能を提供していますので、意外と適 用範囲が広いですよ。 | ||||||||
