【初心者】Java質問・相談スレッド101【大歓迎】at TECH
【初心者】Java質問・相談スレッド101【大歓迎】 - 暇つぶし2ch369:デフォルトの名無しさん
07/05/10 08:44:56
URLリンク(java.sun.com)
このクラスで改行文字を表すにはどうすればいいでしょうか。
もしそれよりも一般的な方法があれば教えてください。

Element date = document.createElement("date");
document.appendChild(date);

Text lf = document.createTextNode("改行文字");
date.appendChild(lf);

Element name = document.createElement("name");
date.appendChild(name);

Text textnode= document.createTextNode("ひろゆき");
name.appendChild(textnode);


<date> ここで改行したい
<name>ひろゆき</name>
</date>

370:デフォルトの名無しさん
07/05/10 08:50:15
数値a,bを読み込み格納している数値を交換する方法で分らない部分があります。
変数は a,b,w でa,bは読み込んだ所まで大丈夫です。
a = w;
b = a;
w = b;
上記の式だとa=wは初期化されてないとエラーがでます。
たぶんwに何も数値がないからでしょうか?
フロートチャートだと上のような順番なんですけど

371:デフォルトの名無しさん
07/05/10 08:56:24
>>369
"\n" でいいかと。
XMLならそもそも改行しなくていいじゃんとは思うが。


372:デフォルトの名無しさん
07/05/10 08:58:09
>>370
> たぶんwに何も数値がないからでしょうか?

そのとおり。

> フロートチャートだと上のような順番なんですけど

フローチャートが間違っている。自分の頭で考えれば、間違っているこ
とは明白でしょでしょ?



373:デフォルトの名無しさん
07/05/10 09:05:48
>>372
やっぱりそうですか、wに何かしろの数字をいれないと駄目なんですね。
退避用の変数を設ける以外何の説明も無かったけど助かりました。

374:デフォルトの名無しさん
07/05/10 09:14:26
先ず、2つのコップを用意しよう。
それを机に置いてみよう。
そして、その2つのコップの位置を、
コップを1つずつ動かして、交換してみよう。

さて、どういう風に動かしたかな?

375:デフォルトの名無しさん
07/05/10 09:49:28
初心者に例出して理解させようとするのはいいが、最後までやれよ?
いつも中途半端に終わってるぞ。

376:デフォルトの名無しさん
07/05/10 09:52:35
a と b を交換したいんだろ?

a = w;
b = a;
w = b;

訳分からんよw

a => w;
b => a;
w => b;

っていう意味じゃないのか?

w = a;
a = b;
b = w;

おもいっきり釣られてみるテスト


377:370
07/05/10 10:15:23
>>376
ほんっとご親切にありがとうございます。
逆さになってましたね(汗)それと出力の部分も逆になってたようで成功してたのに変わってないようなってました。
アルゴリズムの観点で考える力が未熟ですよね、もっと勉強します

378:デフォルトの名無しさん
07/05/10 14:32:45
Cしか知らない初心者です。

Javaで継承されたメソッドのバイトコードはコンパイル時、
親classファイルに吐き出されるのでしょうか?
子classの継承したメソッドは親クラスのメソッドへのリンクになるんでしょうか?





379:378
07/05/10 14:35:03
すみませんわけ分からん質問をしてしまいました。
流してください。

380:378
07/05/10 14:53:01
JVMドキュメントなんかを軽くでも読んでから出直します;;

381:デフォルトの名無しさん
07/05/10 14:56:35
JVMドキュメント? VM仕様? API仕様?

382:デフォルトの名無しさん
07/05/10 16:58:32
ソースコードからクラスのインスタンスのサイズを知ることは可能でしょうか?

383:デフォルトの名無しさん
07/05/10 17:35:48
>>382
コンパイラとVMに依存すると思うよ

384:デフォルトの名無しさん
07/05/10 17:45:22
Char ってどう読むのが一般的なんでしょうか?
人前で発声しなくても自分の心の中だけでの読み方でも良いので教えて下さい。

385:デフォルトの名無しさん
07/05/10 17:50:19
>>382
> クラスのインスタンスのサイズ
なにそれ。

386:デフォルトの名無しさん
07/05/10 17:52:29
練習用のプログラムを書いて保存しようとすると、
メモリが足りないとかでるんですけど、
これはどうすれば解消できますか?
今までコンパイルされたものをリセットとかできますか?

387:デフォルトの名無しさん
07/05/10 17:53:38
>>384
キャラ もしくは チャー と呼んでいる人が多い

388:デフォルトの名無しさん
07/05/10 17:59:11
>>386
> これはどうすれば解消できますか?
条件が抽象的すぎて答えられまセン

> 今までコンパイルされたものをリセットとかできますか?
質問の意図が不明デス

389:デフォルトの名無しさん
07/05/10 18:08:04
>>384
キャスバル兄さん

390:384
07/05/10 18:21:48
>>387
チャー と読む人もそこそこ居るんですね。
実は自分も チャー 派なんですが、人前で読む場合は
何となく負けた感じがするので キャラ にしています。

>>389
アルテイシア乙

391:デフォルトの名無しさん
07/05/10 18:29:14
>>388
本に載ってるサンプルのコードをメモ帳に入力して、
保存しようとするときにメモリに関する警告が出るときがあります。
なのでマイドキュメントに溜まった、
メモ帳に書いたサンプルのコードをかなり消したんですが、
未だに新しいコードを保存しようとすると同じ警告が出るときがあります。
(出ないときもあります。)
なので他の原因を考えたんですが、
今までコンパイルしたものは、
改めてコンパイル(javac)しなくてもjava ~.javaだけで実行できますよね。
なので今までパソコンに記憶されたコードを消せば警告もでなくなるかなと思いました。
なのでどうやってそれを消せばいいかなと思いました。

392:デフォルトの名無しさん
07/05/10 18:31:44
>>391
java ~.java×

java ~○

393:デフォルトの名無しさん
07/05/10 18:36:53
.classのことを言ってるのか
てかPCのスペックは?

394:デフォルトの名無しさん
07/05/10 18:42:52
XP
Home Edition

intel(R) Celeron(R)M
processor 1500MHz
1.50Ghz, 248MB RAM

と書いてます。

395:デフォルトの名無しさん
07/05/10 18:44:16
>>393
そうです。.classやソースコードです。

396:デフォルトの名無しさん
07/05/10 18:44:29
かなりの初心者です。
円の内側に色を塗りつぶしたいのですがどのような方法が一番手軽ですか?
あとJava Runtime Environmentはどうやって起動するのですか?

397:391
07/05/10 18:56:06
パソコンのメモリは電源を消せばリセットされるんですよね。
つまりクラスファイルが消去しなくても電源を消せばいい。
でも電源を消しても警告がでたのでクラスファイルを消しました。
まあ一応まだソースコードは保存できるので様子を見てみます。
ありがとう御座いました。m(_ _)m

398:デフォルトの名無しさん
07/05/10 18:57:02
>>397訂正
クラスファイルが→を

399:デフォルトの名無しさん
07/05/10 19:48:24
>>397
ちょwイミフwwwて言われたいのか?

自作板の人間としてはそんなイミフなサポ来たら
間違いなく死ねるからその前に答えておくと
メモリ増設するかPC買い替えろ。

俺も>>397と同じスペックでEclipse+EclipseME+VE動かしてた時期があるがOSの使用メモリを73Mまで削って物理256-32M+スワップ384Mで運用してたが動くだけだったぞ。

400:デフォルトの名無しさん
07/05/10 21:05:35
>>399
ソースコードのを中のintとかdoubleをコンパイルする度に
メモリがどんどん消費されていくのかなと思ったり・・。
まあ今のところは作業が継続可能なので、
作業が継続出来なくなるようなら買い換えます。
レス有難う御座いますm(_ _)m

401:デフォルトの名無しさん
07/05/10 21:19:54
>>399
イミフwwww

402:デフォルトの名無しさん
07/05/10 21:24:51
何度読んでも397の意味がわからん

403:デフォルトの名無しさん
07/05/10 23:55:35
リスナについての質問です。

Swingでアプリを作っているのですが、
JFrameの上に配置したSwingコンポーネント上でも、
JFrameに登録したリスナのイベントを拾うことは可能ですか?

具体的にはJFrameにMouseMotionListenerをaddしてMouseMoved処理を書いているのですが、
JFrame上に配置しているJTabbedPane等を透過できず、イベントが拾えません。
もちろんJTabbedPaneにMouseMotionListenerを登録することもできますが、
結局その上に配置したボタンやらテーブルに邪魔されて同様の問題が発生します。

力技で全てのコンポーネントにリスナを登録するのは、
コンポーネント数が多すぎて現実的ではないと思います。

要は下部のコンポーネントに登録したリスナのイベントを、
上部のコンポーネントに関係なく拾いたいということなのですが、
このようなことは可能でしょうか?

もし可能であれば、ヒントを頂けるとありがたいです。
長文で申し訳ありませんが、よろしくお願いします。


404:デフォルトの名無しさん
07/05/11 00:27:29
>>403 つ「GlassPane」
こんどからは↓で
Java低速GUI Swing 5
スレリンク(tech板)

405:デフォルトの名無しさん
07/05/11 01:24:25
早速のアドバイスありがとうございました。
Swing用のスレがあったんですね。。
スレ違いになってしまいますが、話の続きなのでここで書かせていただきます。


以下のようにリスナのadd先をGlassPaneにして、setVisible(true)を追記しました。

getGlassPane().addMouseMotionListener(new MyMouseMotionListener());
getGlassPane().setVisible(true);
.......

//内部クラス
class MyMouseMotionListener implements MouseMotionListener{
public void mouseMoved(MouseEvent e){
System.out.println(e.getX() + "," + e.getY());
}
.....
}

結果、マウス移動のイベントを拾ってはくれるのですが、
配置したコンポーネント(ボタン等)を全く押せなくなりました。
まさにアプリの上にガラスを被せたような状態ですw

マウス移動のイベントだけガラスに拾ってもらいつつ、
マウス押下のイベントはガラスを突き抜けて、下のコンポーネントに到達させる様な挙動はさすがに無理なのでしょうか。
ちょっと都合が良すぎる考えのような気がしてきました。。

406:デフォルトの名無しさん
07/05/11 03:58:30
>>397
電源を消すとクラスファイル等いろいろ消えるパソコンに買い替えなさい

407:デフォルトの名無しさん
07/05/11 04:21:29
おそろしいパソコンだw

408:デフォルトの名無しさん
07/05/11 08:35:48
>>405
URLリンク(java.sun.com)(java.awt.Component, java.awt.event.MouseEvent, java.awt.Component)


409:デフォルトの名無しさん
07/05/11 10:14:43
>>397
URLリンク(www.so-net.ne.jp)

410:デフォルトの名無しさん
07/05/11 11:37:27
Javaとは関係ないんですが、JavaVMのアプレットが起動したとき
Window下部に 警告 アプレット ウインドウ と表示されますが
この表示バーを消すことはできませんか?

411:デフォルトの名無しさん
07/05/11 11:39:27
>>405
URLリンク(java.sun.com)

412:デフォルトの名無しさん
07/05/11 16:58:23
>>371
レスありがとうございます。
うまくいきましたが、一つ疑問が起きました。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
の直後で改行しようとした所HIERARCHY_REQUEST_ERRが出ました。
調べた所このノードは子ノードにテキストノードを持てないということがわかりました。

ということはつまり、XMLでは一般的に改行しないんでしょうか?
テキストエディタで一見したときにわかりやすいと思のですが。

413:デフォルトの名無しさん
07/05/11 17:05:37
>>409
怖ぇー

414:デフォルトの名無しさん
07/05/11 21:51:41
すいません!java初心者です!テキスト見てもどう手をつけていいか
わかりません。どなたか詳しい方ご教授願います。

とりあえず、2,10,16進数だけ勉強しました^^;)
本日から入社しましたのですが、なかなか教えてもらう機会がなかった
ので・・。やはり皆さんは23時帰りですか?
素人で申し訳ないです。

415:デフォルトの名無しさん
07/05/11 21:54:55
何か作ってみれば、何が必要なのかが分かってくるはず。

416:デフォルトの名無しさん
07/05/11 22:00:57
>>415 何を作るんですか?? 
それがプログラムが作れない未経験の状態なんで、基本的なことが
わからないんですよ。お奨めのサイトや本てありますか?
図々しくてごめんなさい。


417:デフォルトの名無しさん
07/05/11 22:01:21
>>414
会社の人に聞いた方が早いよ。

418:デフォルトの名無しさん
07/05/11 22:04:33
cygwinで実行して出た結果をコピペしたいのですが、
どうすればいいでしょうか?

419:デフォルトの名無しさん
07/05/11 22:06:46
>>418
ここ、Javaスレだから。

420:デフォルトの名無しさん
07/05/11 22:11:44
javaで書いたプログラムということでだめですか

421:デフォルトの名無しさん
07/05/11 22:13:16
自己解決しましたスマソ

422:デフォルトの名無しさん
07/05/11 22:22:44
これが噂のDQNか…

423:デフォルトの名無しさん
07/05/11 22:27:01
進数はJavaに限った事じゃないから。
まだココで聞くには早いと思うぞ

424:デフォルトの名無しさん
07/05/11 22:43:18
>>414
23時帰りではありません。

425:デフォルトの名無しさん
07/05/11 22:52:48
>>416
何でもいいじゃん。
簡単なゲームでもいいし、何か計算させてもいいし。

426:デフォルトの名無しさん
07/05/11 23:11:48
>>418
stdout(場合によってはstderrも)をファイルに送ればいいだけじゃないの?

427:デフォルトの名無しさん
07/05/11 23:28:32
scriptコマンドとか
cygwinにあったっけ

428:デフォルトの名無しさん
07/05/12 01:53:20
>>412
ルート要素外にはテキストノードは置けないですね。

試してないけど、
URLリンク(faq.javaranch.com)
このへんを参考すると、自動で改行など挿入できるんじゃないでしょー
か。


429:デフォルトの名無しさん
07/05/12 03:21:01
>>412
> テキストエディタで一見したときにわかりやすいと思のですが。
XMLはプログラムで扱いやすいようにしたもので、
人間が直接見たり編集したりするためのものじゃない。
人間が扱うならテキストエディタでなくXMLエディタなんかを使った方がいい。

430:デフォルトの名無しさん
07/05/12 05:01:09
というか根本的にDOMは総称符号化における
文書インスタンスを動的に変更するものであって
テキストデータをフォーマットするものではない。

まあ、元々はNetscapeのdynamic web architectureであるLiveDocumentの後継技術だからHTML用だが。

>>429の言う通り
意味が分からんなら諦めろ。

431:デフォルトの名無しさん
07/05/12 05:07:45
ミスった。

>>429の言う通り総称符号化とはコンピュータ内での文章を保守・管理・閲覧を容易にするための研究分野だ。

人間が見づらいなんて論外、端から眼中にない。お門違い。
フューマンライクにフォーマットしたいならそういう
フォーマッタライブラリがあるからそれ使え。それか自分で書け。

432:412
07/05/12 16:35:13
直接いじらないので改行しないんですか。
それならバイナリデータの方が良いと思いますが、
これは以前のなごりなんですかね。

皆さんレスありがとうございました。

433:デフォルトの名無しさん
07/05/12 16:42:50
普通に出来ることがなんでこうなるのかわからんなw

434:デフォルトの名無しさん
07/05/12 16:44:12
バイナリデータというのが人間が簡単に読めないデータという意味だとすれば
なぜそっちの方がいいと思ったん?

435:412
07/05/12 16:51:20
>>434
処理速度が上がると思ったからです。

436:デフォルトの名無しさん
07/05/12 17:18:13
スレ違いなので、XMLの特徴、長所と短所を理解してから出なおしてください

437:412
07/05/12 17:54:57
わかりました
スレ汚しスマソ

438:デフォルトの名無しさん
07/05/12 18:36:43
BigDecimalでの加減算の方法を教えてください。
なんで普通に足せないの??

439:デフォルトの名無しさん
07/05/12 18:37:58
>>438
どうやって足しているかを書く

440:デフォルトの名無しさん
07/05/12 18:40:23
BigDecimal a = new BigDecimal("10000000000000000");
BigDecimal b = new BigDecimal("10000000000000000");
BigDecimal c = a+b;

こうやろうとしてエラーになっている。
演算子オーバロードができたらねぇ。

441:デフォルトの名無しさん
07/05/12 18:59:46
BigDecimal c = a.add(b);

442:デフォルトの名無しさん
07/05/12 19:10:57
演算子なんて只の飾りですよ
エロいひとにはそれが分からんのですよ

443:デフォルトの名無しさん
07/05/12 20:55:11
IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
ぜんぶ<T>で呼び出してるから一致しないわけないと思うんだけど、コンパイルが出来ません。

444:デフォルトの名無しさん
07/05/12 20:56:49
> IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
どゆ事?

445:デフォルトの名無しさん
07/05/12 21:04:23
TとTが一致しませんといってエラーが出てるのです。

446:デフォルトの名無しさん
07/05/12 21:18:34
JSliderはスライダ部分をクリックしただけだとイベントを発生しないけど、発生するようには出来ないでしょうか?
ChangeEventでスライダを動かした時だけしか、イベントを発生できないようです。 スライダをクリックして
「握った」状態を感知したいのですが・・・

もしくは、そうできるようなものはないでしょうか? swingでの使用を考えています。

447:443
07/05/12 21:25:35
IterableのT型変数をIteratorのnextで戻していたのが原因でした。
型推論できそうな気もするけど、Iterator内に移したらコンパイルが通りました。

448:デフォルトの名無しさん
07/05/12 21:41:05
JAVAってインラインアセンブラできないの?

449:デフォルトの名無しさん
07/05/12 22:01:19
そんなんでRun Anywhereできると思ってんのかコラァ!

450:デフォルトの名無しさん
07/05/12 22:07:38
JVM 用アセンブラを書くライブラリはあるだろ。
BCEL とか使えばいい。

451:443
07/05/12 22:38:09
自己解決の方法が間違ってたので、フィードバック。

Iterableの型をIteratorに引き継ぐ場合は
private class MyIterator implements Iterator<T>とするだけ。
MyIterator<T>としてしまうと型を上書きするみたい。

こんな間違い私だけかも知れないけど。

452:デフォルトの名無しさん
07/05/12 22:50:52
> private class MyIterator implements Iterator<T>とするだけ。
これ、外側に MyIterable<T> の宣言とかが無いと、
何を書いてるか分からんぞ。

453:デフォルトの名無しさん
07/05/12 23:01:45
インラインアセンブラも、ヴァーチョウマスゥィーンヌのほうで吸収して呉れりゃいいのに。

454:デフォルトの名無しさん
07/05/12 23:31:11
javaの考える力を身につけるにはどう学習すればいいですか?
何かお勧めのテキスト教えてください、情報技術者試験対策の勉強だと知らないようなことを
考えさせられて自分の力の無さを感じてしまうお

455:デフォルトの名無しさん
07/05/12 23:52:35
URLリンク(www.amazon.co.jp)

456:デフォルトの名無しさん
07/05/12 23:58:43
>>455
おK、これで考える力をつけようと思います。
しかし値段すごいですね(((( ;゚Д゚))) とりあえず大きな本屋に行って立ち読みしますわ

457:デフォルトの名無しさん
07/05/13 01:05:32
高いか???
普段、赤本とか物理学などの本買ってると2万3万当たり前なので安く感じる。

最も高かったのが、医学の術式を記した本で5万。

458:デフォルトの名無しさん
07/05/13 01:11:19
高いよ

459:デフォルトの名無しさん
07/05/13 01:13:45
本に2000円以上出すのは抵抗あるお
資格取得の参考本以外は手をつけた覚えないな

460:デフォルトの名無しさん
07/05/13 01:49:36
>>455
まつもとゆきひろ氏が読んで目から鱗が落ちた本だな。
URLリンク(www.ruby-lang.org)

461:デフォルトの名無しさん
07/05/13 02:34:48
同じ場所に end の解説があってワロス

462:デフォルトの名無しさん
07/05/13 02:49:37
>単文・複文問題の回避
{ } 強制の Perl では問題が生じない。

>ぶらさがりelse問題の回避
{ } 強制と elsif の導入で解決する問題。

>可読性の向上
趣味の問題なので何ともいえない。

>begin, caseの構文上の問題
これはある程度納得できる。

463:デフォルトの名無しさん
07/05/13 05:20:05
>>462
お前は俺だ

464:デフォルトの名無しさん
07/05/13 10:28:31
開始時刻の(時h1、分m1)と終了時刻(時h2,分m2)を読み込み開始から終了までの時間(時h,分m)を求める式が考えつきません。

hd = h2 - h1; md = m2 - m1; 単純に時分をそのまま足す引くしか考えが浮かばないんですが終了時刻の方が小さいとマイナスと出ます。
逆にしても同じで開始終了どちらの大小関係なくマイナスにならないようにするヒントを教えていただけませんか?

465:デフォルトの名無しさん
07/05/13 10:38:20
Calendarつかえばいんでね

466:デフォルトの名無しさん
07/05/13 10:47:49
もし開始時刻より終了時刻のほうが早ければ開始-終了、それ以外なら終了-開始

467:デフォルトの名無しさん
07/05/13 10:51:09
>>464
絶対値でOK

468:デフォルトの名無しさん
07/05/13 11:37:41
>464
Date start = new Date();
Date end = new Date();
long diff = start.getTime() - end.getTime();
int diffMinitue = diff / (1000 * 60);
int diffHour = diff / (1000 * 60 * 60);

469:デフォルトの名無しさん
07/05/13 11:39:09
>467
絶対値使うなwww
たぶん、12時25分(開始) 13時10分(終了)のような状況と思われ。

470:デフォルトの名無しさん
07/05/13 12:23:54
h=h2-h1;
m=m2-m1;
if(m<0) {
h=h-1;
m=m+60;
}
引き算のときに下の桁で足りなかったら上の桁から借りてくるって算数で習っただろ?

471:デフォルトの名無しさん
07/05/13 12:26:18
>>470
それでやると日付またいだりしたときに面倒くさそうだね。

472:デフォルトの名無しさん
07/05/13 12:34:24
もともと問題がhとmしかないからね。
日付をまたいだり月をまたいだり年をまたいだりするなら、
さらに上の桁から借りればいい。
月が変わる時の処理がちょっと面倒だけど。
まあ、そこまでの問題なら日時関連の標準APIを使うのが楽だろうが。

473:デフォルトの名無しさん
07/05/13 12:39:27
DateとCalendarを使えって話題じゃないのかね?
どういうながれで問題が出されたのか解らんけど。

474:デフォルトの名無しさん
07/05/13 13:41:33
超初心者です。
今アプリゲットの開発講座を見ながらJ2MEのtoolkitでイメージの描写を
やってるのですが、解説にのってあるpngではなく自分で用意したpngを
使用すると、パッケージのところで
「アプリケーション記述子のJARサイズが実際のJARファイルサイズと一致しません」
と出るんですが。どこをいぢればいいか教えてください。

475:デフォルトの名無しさん
07/05/13 13:44:19
黄色いアプリゲットだぜ!

476:デフォルトの名無しさん
07/05/13 14:38:09
javaのsliderで動画のシークに使える派生モノはないですか? JSliderだとスライダーを握っただけ
だとイベントを発生しないので・・・ スライダーを動かして初めてイベントを発生する・・・

477:デフォルトの名無しさん
07/05/13 14:53:29
動画のシークに使うのならサムを握っただけでイベントを発生させる必要はないのでは?
値が変わった時にシークさせればいいと思うのだが。
MouseEventを捕まえればいちおうイベントは発生してくれる。
サムでない部分をクリックしてもMouseEventが発生するけど、
そのときはChangeEventも発生するはずなので区別を付けられないわけではない。
もしくは実装の詳細に入ってしまうのであまり良い方法ではないが、
MouseEventの発生位置がサムの領域かどうかで判断するか。

478:デフォルトの名無しさん
07/05/13 15:06:25
お願いします
>>474


479:デフォルトの名無しさん
07/05/13 15:17:58
>>474
プロパティ

480:デフォルトの名無しさん
07/05/13 15:21:29
>>477
そのサムを握った時に動画やアニメーションを停止させたいので、イベントが発生してくれるとうれしいのです。
もう少し、調べてみます。

481:デフォルトの名無しさん
07/05/13 15:37:26
>>479
プロパティって言うのは、jadにjarファイルの容量を入れるってことですよね?
今はjavaファイルからclassファイルにコンパイルする段階でできないのですが。


482:デフォルトの名無しさん
07/05/13 16:35:21
携帯はスレ違い
MIDPスレ行け

483:デフォルトの名無しさん
07/05/13 16:36:14
>>482
了解です。。

484:デフォルトの名無しさん
07/05/13 17:38:14
プログラミング経験もほぼ無いに等しいのですが
お勧めの参考書でもあれば教えてください。

485:デフォルトの名無しさん
07/05/13 18:18:16
>484
スレリンク(tech板)l50

俺の考えは、入門書はイラネ。
やさしいとか猫が解るとか6日で学ぶとか色々あるが、金の無駄。
いわゆる入門書のレベルならばWebで探せば幾らでもあるからタダ。

Webで軽く触ったなら、少し難しい本を買って辞書として使用すべし。
あわせて、独習Java等の演習問題を血を吐くまで打ち込むべき。

486:デフォルトの名無しさん
07/05/13 19:09:46
JRE6をインストールしたら今まで使っていたJRE5は削除してもいいんでしょうか?

487:デフォルトの名無しさん
07/05/13 21:45:27
>>486
JRE5を使うか使わないかは君次第

488:デフォルトの名無しさん
07/05/13 22:05:30
>>455はJavaじゃないだろ

489:デフォルトの名無しさん
07/05/13 23:17:26
JavaじゃないけどJavaで考える力はつくよ

490:デフォルトの名無しさん
07/05/13 23:30:41
いや、特につかないだろ
Java問題集とかパズルとか読んだ方がずっといい

491:デフォルトの名無しさん
07/05/13 23:40:01
いや、考える力はつくだろ

492:デフォルトの名無しさん
07/05/14 01:23:17
ファイルがまだ残っているディレクトリツリーをまとめて削除したいのですが
どうすればいいでしょうか?

493:デフォルトの名無しさん
07/05/14 01:28:24
残っているファイルを全部消してから親ディレクトリに移り子ディレクトリを消す
という操作を再帰的に行う
下手すると全部消えるから再帰の止めどころを間違えないように

494:492
07/05/14 01:30:17
>>493
その処理をしてくれるメソッドはないでしょうか?

495:デフォルトの名無しさん
07/05/14 01:37:41
標準のAPIにはたぶんない
apache commonsのorg.apache.commons.io.FileUtilsには
deleteDirectoryやcleanDirectoryがある

496:492
07/05/14 01:45:04
>>495
ありがとうございます。

497:デフォルトの名無しさん
07/05/14 03:38:52

質問質問!

JavaのJFrameにFlashPlayerを乗せるにはどうすればいいですか!
教えてちょんまげ!!
 
ちなみにFlash側はActionScriot3.0で書くつもりです
 

498:デフォルトの名無しさん
07/05/14 03:58:47
>>497
切腹

499:デフォルトの名無しさん
07/05/14 04:03:15
for(;;){} の初期化の部分で複数の型を初期化するにはどうすればいいですか?
int と String の異なる型をfor内部で宣言させたいのですが…

エラーになりますが、イメージとしてはこんな感じです。
for(int i=0, String s=""; i<foo.length; i++){}

500:デフォルトの名無しさん
07/05/14 04:17:23
できないのでforの前でやってください

501:デフォルトの名無しさん
07/05/14 04:41:08
>>500
了解です。ありがとうございます。

502:デフォルトの名無しさん
07/05/14 09:12:10
質問させていただきます。
Excelファイルを参照して、指定したセルに書かれいている文字列を、
配列に格納するという方法はあるのでしょうか?

503:デフォルトの名無しさん
07/05/14 09:20:52
あります

504:デフォルトの名無しさん
07/05/14 09:24:40
>>503
調べてみてはいるのですが検討が付きません。
教えていただけませんか?

505:デフォルトの名無しさん
07/05/14 09:27:34
>>504
POI使え
URLリンク(jakarta.apache.org)

506:デフォルトの名無しさん
07/05/14 09:29:40
ありがとうございます。


507:デフォルトの名無しさん
07/05/14 21:06:17
JAVAを独学ではじめようと思っているのですが。
参考書籍、それとも初心者用の解説サイトで学ぶのがよいのでしょうか?
またそれについてお勧めの書籍等ありましたら、教えていただけると有難いです。

508:デフォルトの名無しさん
07/05/14 21:07:39
>>507
やさしいJavaプログラミング

509:デフォルトの名無しさん
07/05/14 21:26:26
>>508
あんなもん教えるな。

510:デフォルトの名無しさん
07/05/14 21:50:42
否定するなら対案示すとかどこが悪いか示すとか、そういうのすべきじゃね?

511:デフォルトの名無しさん
07/05/14 22:04:40
房乙

512:デフォルトの名無しさん
07/05/14 23:16:26
ファイルをアップロードするサーブレットを作っています。
fileuploadライブラリを使用してアップロードは出来るように
なりました。
しかし、フォームのデータが取得出来ません。

ファイルをアップロードするために、「enctype="multipart/form-data"」を
入れているのですが、これを入れるとHttpRequest#getParameter()で
取得できないことは分かりました。
では、どうすれば取得できるのでしょうか?

FileItem#getFieldName()でフォームの名前(name)は取得できるように
なりましたが、値(value)は取得することが出来ません。

どうすればよいのでしょうか?

513:デフォルトの名無しさん
07/05/14 23:22:26
てst

514:デフォルトの名無しさん
07/05/14 23:44:47
>>512
GWT

515:デフォルトの名無しさん
07/05/15 00:19:42
>>514
GWTというものが存在することは先ほど検索して分かりましたが、
それが今回のものとどういう関係があるのか全く分かりません。
もう少し詳しくお願いします。

516:デフォルトの名無しさん
07/05/15 00:24:50
>>512
最近使ってないので覚えてないが
ドキュメントに書いてなかったか?
サンプルにもあったような気がするが

517:512
07/05/15 00:40:04
>>516
FileItemのリファレンスを見ても分からなかったのですが、
サンプルを見るとgetString()で簡単にいけそうです。
今は環境が無いので、明日試してみます。

// Process a regular form field
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
...
}

とりあえず、ありがとうございます。

518:デフォルトの名無しさん
07/05/15 02:50:44
n以下の素数をはじきだすプログラミングをくんだのですが上手く動きません。
添削していただけないでしょうか?

import java.io.*;
import java.io.*;
public class enshu34 {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("integer> ");
int n = (new Integer(in.readLine())).intValue();
int i = 2;
while(n % i != 0) { i = i + 1; }
if(i == n) { System.out.println("This is a prime factor"); }
else { System.out.println("This is not a prime factor"); }
}
}

519:デフォルトの名無しさん
07/05/15 03:13:53
>>518
キミが期待する具体的な動作(…を入力したら…が表示されて欲しい)と
そのプログラムがどう期待通りでないか、
を書きましょう。


520:デフォルトの名無しさん
07/05/15 03:56:54
ぬるぽ

521:デフォルトの名無しさん
07/05/15 04:10:44
ガッ… Java 始めたのですが質問です。

Java には標準で make 相当のコマンド/仕組みは無いですか?
皆IDE?

ググったら Jakarta の Ant なるものが引っかかったんだけど、
使い慣れたmakeにしがみつくより覚えて損はなさそうですか?
意見plz

522:デフォルトの名無しさん
07/05/15 04:22:52
使い慣れたmakeを使い続けるもよし、antをかじってみるもよし。
他人とすり合わせる必要がないのなら自分の一番使いやすい方法をとればいい。
javaのプログラミングで使うのならantは覚えても損はないとは思う。

523:デフォルトの名無しさん
07/05/15 04:46:55
とりあえずmakeで済ませつつ、覚えても損はなさそうな代物ということで
折を見て少しかじってみることにします。

すこし Ant の使い方を眺めていたんだけど、
xml で記述っていうのが慣れていないせいか何となく('A`)
ツールとかで機械的に吐くには便利そうだけど

レスありがとうございました。

524:デフォルトの名無しさん
07/05/15 09:30:16
最近mavenが増えて困る

525:デフォルトの名無しさん
07/05/15 11:14:51
>>523
大量にビルドする時とか、JVM起動のフットプリントが結構響くので
makeだと2時間掛かるけどantに切り替えたら10分だった、という過去の経験がある。
最近のスペックのマシンとJVMだとそんなに気にならない可能性もあるけど

526:sage
07/05/15 15:06:31
Java Web Start のスプラッシュ画像を変更する正しい方法を教えてください。
単に画像を入れ替えるだけだと更新されないばかりか
何度起動しても新しいスプラッシュ画像を毎回ダウンロードしてしまいます。

527:デフォルトの名無しさん
07/05/15 16:40:46
slickeditを使っているが、コンパイルエラーが文字化けして使い物にならない。
そこでjavacの出力を英語かslickeditで日本語を表示できるようにするかのいずれかを
考えているのですが、どうすれば良いでしょうか?
slickeditはver11、 javaは最新版です。

528:デフォルトの名無しさん
07/05/15 21:16:50
"1,2,3,4,5,6,"123,23,45",12,55"
のようのCSVデータで"123,23,45"のような""でかこまれた
箇所だけを除いて、カンマ区切りでデータを抽出するにはどうすれば
いいでしょうか。
StringTokenizerを使用しようとしてなかなかうまく行きません。
ご教授よろしくお願いいたします。

529:デフォルトの名無しさん
07/05/15 21:27:46
何が言いたいのかよくわからんがsplitでも使えばいいんじゃないか

530:デフォルトの名無しさん
07/05/15 21:37:33
いや、
1,2,3,4,5,6,"123,23,45",12,55

1 2 3 4 5 6 "123,23,45" 12 55
で分けたいのです。
"123,23,45"この部分をどうすればいいのかと・・・

531:デフォルトの名無しさん
07/05/15 21:39:45
>>530
引用符外れるけど。

List<String> list = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(str, "\"", true);
boolean inQoute = false;
while(st.hasMoreTokens()){
 String token = st.nextToken();
 if(token.equals("\"")) inQuote = !inQuote;
 else if(inQuote) list.add(token);
 else list.addAll(Arrays.asList(token.split(",")));
}

532:530
07/05/15 21:45:32
>>531
サンクス!!
できました。
ありがとうございます!!

533:デフォルトの名無しさん
07/05/15 21:49:20
>>531
123,23,45 の後に余分な空要素が入るような。
ま、>>530 の用が足りてるならかまわんけど。

534:デフォルトの名無しさん
07/05/15 22:07:03
>>533
while(st.hasMoreTokens()){
 String token = st.nextToken(inQuote ? "\"" : "\",");
 if(token.equals("\"")) inQuote = !inQuote;
 else if(!token.equals(",")) list.add(token);
}

535:デフォルトの名無しさん
07/05/15 22:11:09
プログラム未経験で入社して、研修を行っています。
変数とかif文までは理解できたのですが、for文がどうしても理解できず悩んでます。
特に二重ループ(?)になると混乱して・・・
なにかアドバイス貰えませんか?

536:デフォルトの名無しさん
07/05/15 22:15:13
違う参考書を読んでみる

537:デフォルトの名無しさん
07/05/15 22:15:44
>>535
その場で腕立て10回、腹筋10回を 10セットやってみよう。
それが二重ループだ。

538:デフォルトの名無しさん
07/05/15 22:19:56
> 536
やさしいJavaって本で勉強はしたんですけど、研修で出た課題を解こうとしてもサッパリでして。
書き方乗っているから真似して書いて、と言われてます。
どこをどう真似すればいいのか聞いても、for文はループとしか答えてくれないんです。

539:デフォルトの名無しさん
07/05/15 22:22:38
それ以上どういう説明すりゃいいんだよ

540:デフォルトの名無しさん
07/05/15 22:24:15
forの前にwhileを学べ。whileの基本系に特化したのがforと言っても過言ではない。

541:デフォルトの名無しさん
07/05/15 22:25:48
今からでも遅くなから転職を考えたらどうか

それがダメなら
その本でも違う本でも良いから何度も読んで例題をやってみるとか
誇張じゃなくて、本当に100回ぐらい繰り返して読むと突然理解できる時があるから

542:デフォルトの名無しさん
07/05/15 22:26:44
>>537
腕立て1回やったら腹筋10回を10セットじゃね?

for(int 腕立て回数=0;腕立て回数<10; 腕立て回数++){
 腕立てやる();
 for(int 腹筋回数=0;腹筋回数<10;腹筋回数++){
  腹筋やる();
 }
}
System.out.println("もう無理ぽ");

543:デフォルトの名無しさん
07/05/15 22:28:30
>>542
腕立て10回したら1分休憩を 10セットでも何でもいーけど。

544:デフォルトの名無しさん
07/05/15 22:30:42
いやビリーにGJ!っていってもらったほうがいいな。

545:デフォルトの名無しさん
07/05/15 22:31:37
ブートキャンプか

546:デフォルトの名無しさん
07/05/15 22:37:14
>>538
じゃあ、forをどう理解してるか教えて


547:デフォルトの名無しさん
07/05/15 22:40:29
>>542
それってさ、実行すると
腕立て→腹筋*10→腕立て→腹筋*10→・・・
ってことにならね?

548:デフォルトの名無しさん
07/05/15 22:45:19
はいはい、ワロス、ワロス

549:デフォルトの名無しさん
07/05/15 22:46:00
>> 546
理解しているというか教えられた内容はこんな感じです。
プログラムで繰返し処理を行う場合にfor文を使う
for文ではカウンターと呼ばれる変数をまわして処理が繰り返される
書き方はfor(初期化の式; 繰り返す数の式; 変化の式)と書く。

10回表示するとかは書けるんですけど、素数を表示しろってのが解らなくて・・・

550:デフォルトの名無しさん
07/05/15 22:48:28
>>546
あと、変化の式とか初期化の式とかがよく解りません
やっぱり転職でしょうか

551:デフォルトの名無しさん
07/05/15 22:49:31
549を読んで535の会話能力に不安を覚えた。

552:デフォルトの名無しさん
07/05/15 22:58:11
まだ手に馴染んでないだけだろ。もう少し使って見てから質問したらどうだ。

553:デフォルトの名無しさん
07/05/15 22:59:53
どーまん せーまん
どーまん せーまん

554:デフォルトの名無しさん
07/05/15 23:28:48
>>549,550
そこからかぁ
ここで一から懇切丁寧説明すると長くなるからとりあえずJavaの入門サイトをググって自分
なりにある程度理解した上で質問した方がいいかも。
教育担当にしつこく食い下がる、でもいいけど(論点まとめた上でやらないと嫌がられると思うが)
まぁ最初は誰でも初心者だし理解するのは大変だろうけどこういうのってある日突然視界が
拓けるように見えてくるものだから諦めずにがんがれ。

555:デフォルトの名無しさん
07/05/16 00:10:56
いるんだよ。こういうなんでも手取り足取り教えて君がさ・・
とくにJavaに多い
迷惑極まりない
もういいから、しんでくれ

556:デフォルトの名無しさん
07/05/16 00:18:30
>>549
>プログラムで繰返し処理を行う場合にfor文を使う
間違い。
プログラム(アルゴリズム)で同じ処理を何度も行いたい場合、それを繰返し処理と呼ぶ。
for構文ってのは繰返し処理を実現するただの文法。
何を繰り返したいのか、考えてみること。
文字を出力するのか?数値を足すのか?数値で割れるのかを判定するのか?など。

>>555
いるんだよ。こういう文法だけ覚えろって先輩気取クンがさ・・・
とくにJavaに多い
迷惑極まりない
もういいから、しんでくれ

557:デフォルトの名無しさん
07/05/16 01:44:17
JavaでMBRを書き換えるツールは作れますか?


558:デフォルトの名無しさん
07/05/16 01:54:19
通常時はA.jpgの画像が表示され、ENTERを押すとB.jpgに変わる。
B.jpgにENTERを押すとまたA.jpgに戻り、終了時にはC.jpgがうつる。

というプログラムを組んだつもりなのですが、常にC.jpgだけがうつり、ENTERを押してもなんの反応も示しません。
どうすればいいのでしょうか?

559:デフォルトの名無しさん
07/05/16 01:57:40
>>558
きみのプログラムが間違っているんだと思うぞ。


560:デフォルトの名無しさん
07/05/16 02:05:29
ソースも晒さずにどう間違いを指摘しろと言うのだ

561:デフォルトの名無しさん
07/05/16 04:31:15
>>558
18行目のifの条件を見直してみ

562:デフォルトの名無しさん
07/05/16 04:35:36
>>558
> どうすればいいのでしょうか?

デバッグすれば?


563:デフォルトの名無しさん
07/05/16 05:31:31

JFrameの上にFlashPlayer載せるにはどうすりゃいいですか?
 

564:デフォルトの名無しさん
07/05/16 05:47:08
>>527
slickeditってのがどんなものなのか知らないけれど、
javacの実行環境のlocaleを英語にしたければ、
-J-Duser.language=en
をjavacのオプションにすればいい。-Jの後に空白を置かないように。

565:デフォルトの名無しさん
07/05/16 05:48:53
FlashPlayer
JFrame

566:デフォルトの名無しさん
07/05/16 11:29:05
質問です。
a.xlsというエクセルファイルにC:\\b.xlsという記述があるとします。

まずa.xlsをプログラム内で

POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(
"C:\\a.xls"));
の記述で開きます。

まずa.xlsは上記の様に直接プログラム内で指定しているので開けるのですが、
その後、a.xls内に記述されているC:\\b.xlsという文字列を読み込み、
例えばdataという変数に格納します。
それのdataという変数に格納されているC:\\b.xlsを参照して、

POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(
"C:\\b.xls"));

という様な形でb.xlsを開けるようにしたいのですがどうすればいいのでしょうか?

わかりにくくてすいません。要するに
直接プログラム内でパスを記述するのでなく、変数に格納されている文字列を読み込み
それをパスとして読み込んでファイルを開くという方法を教えていただきたいのです。

567:デフォルトの名無しさん
07/05/16 11:41:19
変数に格納されているのならその変数をそのまま使えばいいのでは?
パスの形への整形は必要かもしれんが。

568:デフォルトの名無しさん
07/05/16 12:34:06
ありがとうございます。
その整形方法がわからないのですが。。


569:デフォルトの名無しさん
07/05/16 12:43:44
dataにC:\\b.xlsって文字列が格納されてるなら
POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data));
でええんとちゃうのん?
整形も何も必要ないような
って必要あるね
dataがStringだとして
data=data.replaceAll("\\\\","\\");
とでもすれば?

570:デフォルトの名無しさん
07/05/16 14:06:51
>>569
しなくていい
POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data));
でええはず
あるいは data が Array や ArrayList みたいなのだったらループ汁


571:558
07/05/16 14:20:48
今調べてますが、
とりあえず内容をあげてました。
URLリンク(www.vipper.org)

572:558
07/05/16 14:27:22
>>571のやつは、ちょっとC.jpgの部分辺りが消えてしまってるんですが・・・

573:デフォルトの名無しさん
07/05/16 14:40:49
試さずにコメントするけど
switchの中でgetKeyCode()を何度も呼び出してるからじゃないかな


574:デフォルトの名無しさん
07/05/16 14:44:21
paint の中
bkgrp 毎回 null

575:デフォルトの名無しさん
07/05/16 14:47:42
なんだ釣りか

576:デフォルトの名無しさん
07/05/16 14:49:38
>>571
KeyEvent の届き方ってのは仕様が無い。プラットフォーム毎(キーボードの種類毎)に挙動が違う。
keyPressed は押し始めに 1回だけ呼ばれるという前提で書いてるみたいだけど、
キー押し始めてからキー離すまで nミリ秒ごとに keyPressed を呼び出すプラットフォームもあるので要注意。

577:デフォルトの名無しさん
07/05/16 15:56:37
>>570
ほんとだ。"C:\\\\\\\\\\hoge.txt"とかでも大丈夫だった。
先頭にドライブ文字が付いているからUNCパスと区別できるってことか。

578:デフォルトの名無しさん
07/05/16 16:00:03
RMIサーバを作成しています。
リモートオブジェクトがGCのタイミングで無くなってしまう可能性
URLリンク(d.hatena.ne.jp)
を潰しておきたいのですが、
static変数に持っておく、参照が切れない事が分かっている
インスタンスの変数とする、等の方法しか無いのでしょうか。
コード的に、もうちょっと体裁の良い形にしておきたいのですが。

また、リモートオブジェクトのエクスポートの瞬間にオブジェクトが
取得される可能性があるからコンストラクタでの処理が云々、
と言った話をトラブル話として過去に聞いたのですが、当時良く理解出来ませんでした。
この情報から推測できそうな有名な落とし穴等ありますでしょうか?

579:デフォルトの名無しさん
07/05/16 19:45:31
プログラミング自体が完全に初心者なんですが、そういう初心者向けのJavaの参考書はなにがいいでしょうか?
いまのところ、一冊は候補があってもう何冊か目星をつけて見比べたいので。

580:デフォルトの名無しさん
07/05/16 20:54:58
>>579
なぜプログラミングができないのかって本。
中身はJava入門本、目から何か出る。

581:デフォルトの名無しさん
07/05/16 22:57:09
目からビーーーーム!!
・・・は既にでじこも卒業

582:デフォルトの名無しさん
07/05/16 23:52:11
>>579
ぜったいコレ
URLリンク(www.amazon.co.jp)

よく初心者に勧める本っていえば、猫でもわかる~系が有名だけど
「本物の初心者」ならプログラミングって概念がさっぱりわからんだろうから
図やイラストがたくさんあったほうがかなりわかりやすい

(その辺を考慮せず薦める中級者・上級者がやたら多い)

なので、この本おすすめ
オライリー本だから当然、文章も良文です

583:デフォルトの名無しさん
07/05/17 04:38:42
beanにinit()の初期化処理が入っています。
そのbeanをJSPからusebeanした場合、beanのinit()の部分の処理は次回のjspへのリクエスト時は処理されないですみますか?
それともjspへのリクエストの度にusebean⇒beanのinit()処理となってしまいますか?

584:デフォルトの名無しさん
07/05/17 07:48:09
>> 582
恒例の流れなんだが、Head First Javaは良書だが初心者にはどうかと。
どんな本でも良いんだが、打ち込んだソースが動かないとか、論外。

自分的にはGoogleが一番良い参考書だと思うぞw

585:デフォルトの名無しさん
07/05/17 07:51:27
>> 583
beanのコンストラクタから init() を呼び出しているって事でOK?

useBeanした時にどうなるかは、beanのスコープに依存する。
スコープがrequestならば毎回初期化される(インスタンスが生成される)。
sessionであるならば、同一sessionで使いまわされると理解して良い。
(細かい所は省略しているからあとは自分で調べろ)

initにSystem.outとかブレイクポイントとか仕掛けて、両方の挙動を確認するのがいいよ。

586:デフォルトの名無しさん
07/05/17 11:36:37
諸先輩方、アドバイスお願いします。

オライリーのJAVAクイックリファレンスで勉強中なんですが
初期の段階(クラスのメンバー等)のところでつまづいてなかなか先に進めないでいます。
とりあえずと読み進めていますが、理解できないところが多くなってきました。
こういうときは、理解できるまで繰り返し読むしかないのか
分からないなりに一通り読み進めていく方が良いのか、どちらの方が良いでしょうか?
そもそも、この程度の箇所でつまづいてる時点ではJAVAはまだ早いでしょうか?
厳しい意見でも構いませんのでアドバイスお願いします。

587:デフォルトの名無しさん
07/05/17 11:39:47
>>586
プログラムを実際に組んで動かしたことありますか?

588:586
07/05/17 11:44:56
>>587
クイックリファレンスに掲載されているものは打ち込んで動かしていますが、
自分で何かを組んだりしたことはありません。

589:558
07/05/17 12:18:27
遅くなりましたが返答ありがとうございます。
しかし未だにプログラムは完成してません。
もう少し自分で頑張るつもりです。

590:名無しさん
07/05/17 12:31:37
URLリンク(gihyo.jp)

やってみれ

591:586
07/05/17 12:46:52
>>590
現在掲載されているのは計算が主体のようですね。
でも、勉強になります。連載中のようなのでこれからが楽しみです。
ありがとうございました。

592:586
07/05/17 12:49:16
>>590
各回は1ページではなかったんですね・・・。
最後のページに演習があったのに今気付きました。
やってみようと思います。

593:デフォルトの名無しさん
07/05/17 14:38:14
String expr = "2 * 3 + 7";
Calculator calc = new Calculator();
String value = calc.eval(expr);

value = 13 になる
みたいなクラスってありますか?



594:デフォルトの名無しさん
07/05/17 14:54:19
>>593
自分で作ってください

595:デフォルトの名無しさん
07/05/17 15:13:34
そのものというわけにはいかないが
6以降ならスクリプトAPI使ってRhinoに評価させるって手はあるな

596:デフォルトの名無しさん
07/05/17 15:32:40
ちっこいコンパイラ作るつもりでやってみw

597:デフォルトの名無しさん
07/05/17 15:45:26
与えられた正の整数の因数を全て表示するプログラムを作成しなさい。たとえば12の場合、2,3,4,6を表示する。

というような問題はループを使うのですか?どなたか答えを、、

598:デフォルトの名無しさん
07/05/17 15:53:57
再帰を使えと?

599:デフォルトの名無しさん
07/05/17 16:02:55
>>597
何を使っても良いのでは

void printInnsuu(int n){
for(int i = 2; i <= n / 2; i++)if(n % i == 0 )System.out.print(i + ",");
}

600:デフォルトの名無しさん
07/05/17 16:29:41
>599さん
ありがとうございました(^3^)/

601:デフォルトの名無しさん
07/05/17 17:21:48
>>593 jay+JFlexならこんな感じで
--Calculator.jay
%{
public class Calculator {
private Integer result;
%}%token <Integer> NUMBER
%type <Integer> expr
%left '+'
%left '*'
%%
string: | string expr { result = $2; }
expr: NUMBER { $$ = $1; }
| expr '+' expr { $$ = Integer.valueOf($1.intValue() + $3.intValue()); }
| expr '*' expr { $$ = Integer.valueOf($1.intValue() * $3.intValue()); };
%%
public String eval(String expr) throws Calculator.yyException, java.io.IOException {
yyparse(new Lexer(new java.io.StringReader(expr)));
return String.valueOf(result);
}
}

602:デフォルトの名無しさん
07/05/17 17:23:27
--Lexer.flex
%%
%public
%class Lexer
%implements Calculator.yyInput
%type int
%eofval{
return YYEOF;
%eofval}
%{
private int token;
private Object value;
public boolean advance() throws java.io.IOException { return (token = yylex()) != YYEOF; }
public int token() { return token; }
public Object value() { return value; }
%}
%%
" " { }
[1-9][0-9]* { value = Integer.valueOf(yytext()); return(Calculator.NUMBER); }
. { return yytext().charAt(0); }
--Test.java
public class Test {
public static void main(String[] args) throws Exception {
String expr = "12 + 3 * 7";
Calculator calc = new Calculator();
String value = calc.eval(expr);
System.out.println(expr + " = " + value);
}
}

603:デフォルトの名無しさん
07/05/17 18:36:39
jarを作って、プログラムの中からjarを実行させたいのですが、
可能でしょうか?

604:デフォルトの名無しさん
07/05/17 20:39:31
>>603
イミフ

605:デフォルトの名無しさん
07/05/17 22:24:04
>>604
たとえばSWTで1画面作って、jarにして
別のシステムからボタンクリックイベントとかで、
このjarにした画面を呼ぶ事ができるのかなって、、、

606:デフォルトの名無しさん
07/05/17 22:27:35
>>605
できると思うけど。

具体的な状況がサッパリわからんので、
具体的にどうやるかは自分で考えれ。

607:デフォルトの名無しさん
07/05/17 22:57:49
>>606
SWTで画面を作って、jarにするところまでできたのですが、
それを今度は、JFrameで作った画面のボタンクリックイベントで
jarにした画面を表示させたいのですが、具体的にどう記述すれば良いか
色々しらべてもわからなかったので、もしよろしければ教えてください。

608:デフォルトの名無しさん
07/05/17 23:10:43
>>607
Runtime.exec(String command)

609:デフォルトの名無しさん
07/05/17 23:30:38
class Sample{
    static boolean b;
    public static void main(String[] args){
       int x = 0;
if (b) {
  x = 1;
} else if(b = false) {
x = 2;
} else if(b) {
x = 3;
} else {
x = 4;
}
System.out.println("x = " + x);
   }
}


「if(b = false)」のところでbの初期値であるfalseと一致し、
「x = 2」と出ると思っていたのですが、
実行すると「x = 4」と表示されます。
何故そうなるかご教授願いたいのです。

610:デフォルトの名無しさん
07/05/17 23:38:54
>>609

>} else if(b = false) {

bにfalseを代入してるから?

611:デフォルトの名無しさん
07/05/17 23:40:21
> 「if(b = false)」のところでbの初期値であるfalseと一致し、
それ、比較じゃなくて代入だから。

比較したいなら if(b == false)

612:デフォルトの名無しさん
07/05/17 23:52:40
booleanとtrue,falseを比較なんて身の毛もよだつ
バグが入るので絶対お薦めしません
if( b )
if( !b )
これでいいだろ?

613:609
07/05/18 00:01:22
比較の"=="じゃなく、"="なので代入になってしまっていたわけですね。
なるほど、わかりました。
どうもありがとうございました。

614:デフォルトの名無しさん
07/05/18 00:45:18
>>612
if(b){} else {} でいいじゃん。

615:デフォルトの名無しさん
07/05/18 01:09:47
Sunのコーディングスタイルはif(b==ture) else

>>608
そういう意味じゃなくてOOoみたいに別々に固めた別コンポーネント(ウィジェット)を連携したいって意味じゃない?

616:デフォルトの名無しさん
07/05/18 01:16:01
> Sunのコーディングスタイル
URLリンク(java.sun.com)

> f(b==ture) else
そんな事書いてなくね?

617:デフォルトの名無しさん
07/05/18 01:22:39
boolean b = false;

【不恰好なコード】
if (b == true) {
 // 処理 
} else if (b == false) {
 // 処理 
}

【美しいコード】
if (b) {
 // 処理 
} else if (!b) {
 // 処理 
}

618:デフォルトの名無しさん
07/05/18 01:25:01
> } else if (!b) {
釣りか?

619:デフォルトの名無しさん
07/05/18 01:26:16
酔ってるんだ
みなかったことにしてくれ

620:デフォルトの名無しさん
07/05/18 06:24:48
>>609
ちなみに == true を書く派だが、これは盲点。
 if( b = false) ってバグは怖いな

ためしにint あたりで同じバグを書いてみよう
 if(i = 10)
とかね。
こっちはコンパイルエラーとなる。

実はJavaの場合、代入式の実行結果として代入値が返されるんだわ。
だからint の場合は、代入値(10)が ifの論理式の所に渡されるからNG。
これに対して、boolean の場合は、falseが渡されるから、結果としてOK。

そう考えると、612の主張もアリと感じる。

621:デフォルトの名無しさん
07/05/18 06:45:48
比較演算の結果は boolean なので、 boolean を true, false と
比較するというのなら比較演算の結果も当然比較するべきだろう。
その結果も boolean なので(以下略

622:デフォルトの名無しさん
07/05/18 07:37:55
(...(((b == true) == true) == true) ... == true)

623:デフォルトの名無しさん
07/05/18 08:06:04
無限再帰ってこわくね?

624:デフォルトの名無しさん
07/05/18 10:24:01
javaって肥大化していくCで書かれたソフトウェア開発コスト下げれるの?
速度速いしC++の方がいいと思うんだけど。

625:デフォルトの名無しさん
07/05/18 10:31:11
>>624
JavaでCのソフトは作れないなぁ

626:デフォルトの名無しさん
07/05/18 10:41:14
>>625
組み込みシステムとかは?


627:デフォルトの名無しさん
07/05/18 11:24:29
どの言語も使いどころが違うからなあ
マルチリンガル必須だよ

628:デフォルトの名無しさん
07/05/18 12:30:18
boolean は、真偽値しか入ってこない型なんだから
判定では、比較させないのがバグを回避するのに有効だと思うが・・・・

Cや、Perlなど boolean以外の値も真偽判定に使えるような言語だと、
比較を書くのは真偽判定に使っていると明示すことこになって嬉しいんだけど
Javaはbooleanでしか判定しないので比較を書かない方がいいと思う

629:デフォルトの名無しさん
07/05/18 12:46:29
>>628
ふむふむ。
それならば、メソッドの戻り値がbooleanの場合はどうする?
if(isHogeHoge()) {}

if(isHogeHoge() == true) {}
だと後者のほうが解りやすいと俺は思う。

変数だと書かないのもありと思うけど、でも!は嫌いだなぁ。
見落とすんだよね・・・

630:デフォルトの名無しさん
07/05/18 13:32:15
>>629
俺は >>628 じゃないけど、前者の方が良い。

if (!isHoge()) と if (isHoge() == false) でも前者かな。

631:デフォルトの名無しさん
07/05/18 13:33:19
== true を入れられると、何か頭を使わないと理解できない。
慣れの問題だろうが、俺はない方がはるかに分かりやすい。

というか、C/C++ 使ってると true と比較するのはものすごく抵抗がある。
ctype.h の is 系関数とか 1 以外の値も返すようになってる実装だったりすることも多いし。

632:デフォルトの名無しさん
07/05/18 13:40:30
C/C++ だと == NULL とか != NULL は良くやる。

ってか、文法似てるけど別の言語だからスレ違いだね。ごめん。

633:デフォルトの名無しさん
07/05/18 13:41:24
ポインタは真偽値じゃないから書くのが普通だろう。

634:デフォルトの名無しさん
07/05/18 13:46:46
>>629
個人的主観で言うならば日本語に直してスムーズに読める方を採用する
if(isHogeHoge()){} →もしHogeHogeならば(比較的素直に読める)
if(isHogeHoge() == true){} →もしHogeHogeが真ならば(いかいもプラグラム的)

635:デフォルトの名無しさん
07/05/18 14:31:32
>>618
こう考えるんだelse if(!b)else assert false;
それは契約だと・・・・なんだって?到達不能だって?

636:デフォルトの名無しさん
07/05/18 14:33:19
>>635
b が別スレッドから変更される可能性があるんだよ。たぶん。

637:デフォルトの名無しさん
07/05/18 15:07:02
何という危険なプログラム!

638:デフォルトの名無しさん
07/05/18 15:48:14
>>637
つ volatile

639:デフォルトの名無しさん
07/05/18 16:02:38
いや、それ何の解決にもなりませんから。

640:デフォルトの名無しさん
07/05/18 16:23:51
public class VolatileSolvesEverything {
private boolean 解決 = false;

/* 中略 */

if (解決) { /* 嘘やん(心の声) */} else { /* 到達不能ということにしたい */ }

}


641:デフォルトの名無しさん
07/05/18 16:29:53
>>629
!を見落とすより間違った代入を見落とした方がバグとして痛いだろう

642:デフォルトの名無しさん
07/05/18 17:21:34
if(true - true == 0)

643:デフォルトの名無しさん
07/05/18 17:32:37
>>642
booleanは引き算できないってこと分かってる?

644:デフォルトの名無しさん
07/05/18 18:02:16
初心者の質問じゃないかもしれないけど、
どなたか教えてください。

ドメインaaaaa.comからURLリンク(bbbbb.com)へ、
リンクが貼られているかをチェックするプログラムを作りたいと思っています。

現在サイト運営していて、
相互リンク先から本当に自分のサイトにリンクされているのかを、
確認したいと思っているのですが、
リンク件数が1000件を超えているため、
プログラムでチェックしたいとおもっています。

Javaでなくてもいいのですが、
JSpiderというものがあるのを知り、
こちらにかきこませていただきました。

べつに言語はJavaに固執しているわけではありません。

参考になるサイトなどありましたら教えていただけないでしょうか。
どなたかお願いします。

645:デフォルトの名無しさん
07/05/18 19:47:43
>>644
URLリンク(www.atmarkit.co.jp)

646:デフォルトの名無しさん
07/05/18 20:02:30
>>644
パッシブな調査方法でいいのなら、
ログのリファラをチェックするのが一番確実だと思います。
それだと、相互リンク自体が有効かどうかチェックできるし
ネットワークトラフィックを発生させる事もありません。

1.相互リンクをお願いする
2.相手にリンク作ったら1回踏んで動いていることをチェックしてもらう
3.毎月(自分の納得する頻度で)ログをチェックする
4.相互リンクを結んでいる相手のリファラを持つアクセスが無い相手のみ目でチェック

これでOK.
1000件以上も単なるリンクチェックだけに回るのは
極めて非常にとても無駄です。

647:デフォルトの名無しさん
07/05/18 20:17:52
俺は ! の後には必ず空白入れるようにしてる。
if(! b) みたいに、目立つように。

648:デフォルトの名無しさん
07/05/18 20:18:05
>>644
URLリンク(q.hatena.ne.jp)

649:デフォルトの名無しさん
07/05/18 20:19:22
>>644
URLリンク(hp.webnavisys.com)

650:デフォルトの名無しさん
07/05/18 20:20:03
>>644
URLリンク(exp.webnavisys.com)

651:デフォルトの名無しさん
07/05/18 20:25:57
>>647
俺らは ! は必ず三つ並べるようにしてる。
if(!!!b) みたいに、目立つように。


652:デフォルトの名無しさん
07/05/18 20:35:36
>>651
なにー!
くそー、じゃあオレは4つ並べちゃうぞ

653:デフォルトの名無しさん
07/05/18 20:39:33
>>652
ちょw それヤバいwww

654:デフォルトの名無しさん
07/05/18 20:41:49
>>652
だめじゃん

655:デフォルトの名無しさん
07/05/18 20:42:27
>>653
ってか、3つや5つならオッケーなんだよな。
4つや6つ並べると負けってのは何か理不尽じゃね?

納得いかない奴の数→(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ry

656:デフォルトの名無しさん
07/05/18 20:48:07
>>653

wを2つ並べるのも避けてるみたいですが、意図的ですか!!!ww1w!w!!ww


        というか
    _, ._   金曜の夜なのに
  (´・ω・)   くそレスが次から次へと…
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)ww意図的ですか!!!ww1w!w!!wwwbw!!ww



657:デフォルトの名無しさん
07/05/18 21:24:47
>>638-639
結局、JSR-133って何が変わったんだっけ?

658:デフォルトの名無しさん
07/05/18 21:29:48
!!! って流石に ! に最適化されるよね?

659:デフォルトの名無しさん
07/05/18 21:36:31

  (´・ω・)   く あまり糞レス増やすなよー
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)!!! って流石に ! に最適化されるよね?

660:デフォルトの名無しさん
07/05/18 23:33:39
!って1個じゃなくてもいいの!?

661:デフォルトの名無しさん
07/05/18 23:34:59
!!?!

662:デフォルトの名無しさん
07/05/18 23:35:00
>>660 単項演算子だからね。

663:デフォルトの名無しさん
07/05/18 23:35:44
1++++---+--+++++-+-++-+2

664:デフォルトの名無しさん
07/05/18 23:42:10
ああそうか2個あったらfalseの逆になるのか

665:デフォルトの名無しさん
07/05/19 00:08:50
>>645
>>646
>>648-650

ありがとうございます。
参考にさせてもらいます。

666:デフォルトの名無しさん
07/05/19 00:21:33
>>663
構文エラーだね。

667:デフォルトの名無しさん
07/05/19 00:27:41
1+ + + +- - -+- -+ + + + +-+-+ +-+2

668:デフォルトの名無しさん
07/05/19 00:30:44
>>667
マジレスすると、Java では 1 ++ ++ -- + -- ++ ++ + - + - ++ - + 2 と区切られなければならない。

1++2 も同じ理由でコンパイルエラーになる。

669:デフォルトの名無しさん
07/05/19 00:32:35
マイナスが一個足りないな

670:デフォルトの名無しさん
07/05/19 02:45:35
ネットワーク対戦のゲームを作りたいのですが、
クライアントサイドにSwingをサーバサイドにサーブレットを使おうと考えています。
通信部分はどうしたらいいのでしょう。



671:デフォルトの名無しさん
07/05/19 02:51:40
ServletならJakarta Commons HTTP Clientを使っとくのが楽かもね。

672:670
07/05/19 03:02:16
>>671
ありがとうございます。
ググってみたのですがよくわかりません…
詳しく教えていただけないでしょうか?

673:デフォルトの名無しさん
07/05/19 03:39:51
わからんのなら素直にSocketでも使っとけ。

674:デフォルトの名無しさん
07/05/19 05:43:23
>>671
HTTPSでも問題ないですか?

675:デフォルトの名無しさん
07/05/19 05:45:14
>>670
URLリンク(jakarta.apache.org)


676:デフォルトの名無しさん
07/05/19 06:17:14
URLリンク(www.ipa.go.jp)

このページにある、リスト2 InfoMenuクラスのソースなのですが、

10 public void dispMenu(Passwd pwd) {
11 if(pwd.checkPasswd() == true) {
12 dispSystem();

10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、
PasswdクラスとinfoMenuクラスが親子関係という訳でもなく、
infoMenuクラスからPasswdオブジェクトを作っている記述もありません。

なぜ、dispMenu(Passwd pwd)だけで任意のPasswdオブジェクトが取得できるのでしょうか?

677:デフォルトの名無しさん
07/05/19 07:41:15
>>676
> 10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、

そんなこと書いてない。テキストを誤解している。


678:デフォルトの名無しさん
07/05/19 07:43:54
>>676
「Passwdを取得する」ではなく「Passwaを引数とする」ではないの?

679:676
07/05/19 08:11:34
そのとおりです、オブジェクトを引数として渡してるだけでしたorz

何故か初歩的なこと忘れてました。
「dispMenu(Passwd pwd)」って記述したら自動的に
「dispMenuに渡された引数がそのままPasswdに渡されて、尚且つpwdオブジェクトが生成される」とか
変なことばかり考えてまして。

ありがとうございました。

680:デフォルトの名無しさん
07/05/19 13:46:16
注:str.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください
というエラーがコンパイルすると出るんですがなぜですか?
同じものを学校のPCでやってもでなかったのに

681:デフォルトの名無しさん
07/05/19 14:13:45
>>680
javac -source 1.4 str.java
ってやってみ?
学校のコンパイラのバージョンは古いからエラーが出なかったんだ。

682:デフォルトの名無しさん
07/05/19 14:25:36
>>681
できました!
ありがとうございます

683:デフォルトの名無しさん
07/05/19 19:24:25
ha= buf.readLine();

switch (ha.charAt(0)){
case'+':
kg=1;
case'-':
kg=2;
case'*':
kg=3;
case'/':
kg=4;
}

の部分に

Exception in thread "main" java.lang.NumberFormatException: For input string: "+"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at RinkouPractice4.main(RinkouPractice4.java:22)

ってエラーが出てコンパイルできるが実行できないんですが原因を教えてください

684:デフォルトの名無しさん
07/05/19 19:40:43
>>683
とりあえずエラーが発生してる場所が違うな。

>at java.lang.Integer.parseInt(Unknown Source)
>at RinkouPractice4.main(RinkouPractice4.java:22)

まぁこれ見る限りreadLine()してきたデータそのままparseInt()に渡してるんだろうな

685:デフォルトの名無しさん
07/05/19 20:41:46
public static void main(String[] args)throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
String ha,s1,s2,b1,b2;
int kg;
int si1,si2,bo1,bo2;
System.out.println("数値を入力"); //ユーザに入力を促す
s1=buf.readLine();
b1=buf.readLine();
si1 = Integer.parseInt(s1);
bo1 = Integer.parseInt(b1);
ha= buf.readLine();
s2=buf.readLine();
b2=buf.readLine();
si2 = Integer.parseInt(s2);
bo2 = Integer.parseInt(b2);
Kazu v1 = new Kazu(si1,bo1);
Kazu v2 = new Kazu(si2,bo2);
// Hantei h = new Hantei();
// kg = h.opr(ha.charAt(0));
kg=0;
switch (ha.charAt(0)){
case'+':
kg=1;
case'-':
kg=2;
case'*':
kg=3;
case'/':
kg=4;
}
なぜエラーが出るんですか?

686:デフォルトの名無しさん
07/05/19 21:17:08
RinkouPractice4.javaの22行目どうなってる?
mainメソッドから数えて22行目じゃなくてファイルの頭から数えて22行目。
>si1 = Integer.parseInt(s1);
>bo1 = Integer.parseInt(b1);
>si2 = Integer.parseInt(s2);
>bo2 = Integer.parseInt(b2);
どれかのはずだけど…

んで、なんでエラーになるかというと、parseIntメソッドの仕様だから

>文字列の引数を符号付き 10 進数の整数型として構文解析します。
>文字列にある文字はすべて、10 進数でなければなりません。ただし、
> 1 番目の文字だけは、負の値を表すためにマイナス記号の ASCII 文字
>「-」(「\u002d」) であってもかまいません。

これに”+”付の数字渡せば
>Exception in thread "main" java.lang.NumberFormatException: For input string: "+"
となる、と。
入力データのチェック入れれば回避できるんでない?

687:デフォルトの名無しさん
07/05/19 21:41:49
20 s1=buf.readLine();
21 b1=buf.readLine();
22 si1 = Integer.parseInt(s1);
23 bo1 = Integer.parseInt(b1);
24 ha= buf.readLine();
25 s2=buf.readLine();
26 b2=buf.readLine();
27 si2 = Integer.parseInt(s2);
28 bo2 = Integer.parseInt(b2);
29
30 Kazu v1 = new Kazu(si1,bo1);
31 Kazu v2 = new Kazu(si2,bo2);

こうなってますが具体的にはどうすればよいのでしょうか?

688:デフォルトの名無しさん
07/05/19 23:01:22
>>680-682
Generic使えよ

689:デフォルトの名無しさん
07/05/19 23:53:00
入力データのチェックって何ですか?

まだ出来ないんですが誰か助けてください

690:デフォルトの名無しさん
07/05/20 00:14:34
J2EEのライブラリを書くときにServlet APIのインタフェースライブラリだけが欲しいんですが
これってTomcatとかから借りてきてそのまま配布してもいいんですか?

691:デフォルトの名無しさん
07/05/20 00:30:24
>>689
readLineメソッドで読み込んだ文字列(変数ha以外)が数字又は一文字目が"-"以外だったら
エラー処理を行う(再入力させるもよし、Exception投げるもよし、問答無用でプログラム終了でも…)
要するにInteger#parseIntがちゃんと処理できる値が入力されていることを保証してやる
ユーザが作り手の意図した通りの入力してくれるとは限らないから入力チェックは必須。

692:デフォルトの名無しさん
07/05/20 00:59:45
int readInt() throws EOFException {
 while(true) {
  String str = buf.readLine();
  if(str == null) { throw new EOFException(); }
  try { return Integer.parseInt(str); }
  catch(NumberFormatException e) {
   System.out.println("残念、もう一度");
  }
 }
}


693:デフォルトの名無しさん
07/05/20 02:11:35
>>688
残念ながら1.4が本当のターゲットらしいんでgenericsを使っちゃコンパイルできなくなる。
別の所でそれより新しいバージョンでコンパイルして警告を出されて焦ったようだ。

694:デフォルトの名無しさん
07/05/20 04:08:12
>>693
つ -source 1.5 -target jsr14

695:デフォルトの名無しさん
07/05/20 04:13:02
WindowsでもLinuxでも動作する
USBポートに対する入出力を行うライブラリでオススメ教えてください

696:デフォルトの名無しさん
07/05/20 04:23:35
整数を任意に入力していき、0を入力したら最大値は何番目にでてきたか出力する
プログラムですが、たとえば
0>10
1>11
2>0
と入力すると、本来
1
と出力されてほしいのに、
1
1
と出力されてしまいます。
どこがおかしいのかご教授くださいmm


697:697
07/05/20 04:26:12
import java.io.*;

public class enshu41b {
 public static void main(String[] args) throws Exception {
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  int[] a = new int[100];
  int count = 0;
  while(count < a.length) {
   System.out.print(count + "> ");
   int v = (new Integer(in.readLine())).intValue();
   if(v == 0) { break; }
   a[count] = v;
   ++count;
   }
  int max = a[0];
  int[] mn = new int[100];
  mn[0] = 0;
  int count2 = 0;
  for(int i = 1; i < count; ++i) {
   if( a[i] > max ) {
   max = a[i];
   count2 = 0;
   mn[count2] = i;
   }
  if( a[i] == max ) {
  ++count2;
  mn[count2] = i;
  }
 }
 for(int i = 0; i <= count2; ++i) {
 System.out.println(mn[i]);
 } } }

698:デフォルトの名無しさん
07/05/20 06:03:42
>>695
jUSBを自分でwindowsに対応させる。

699:デフォルトの名無しさん
07/05/20 06:26:32
>>694
これ便利だな
はたからthx

700:デフォルトの名無しさん
07/05/20 07:25:48
>>696
境界条件を頭の中でシミュレート。わかんねーならトレース実行でもしろ。

701:デフォルトの名無しさん
07/05/20 08:35:25
>>694
1.4でコンパイルするのが目的で1.5以上のコンパイラの機能は使えない
1.4の実行環境をターゲットにして1.5以上でコンパイルするんじゃないから
1.4のコンパイラしかない環境でコンパイルするにはそのオプションは空しい

702:デフォルトの名無しさん
07/05/20 11:17:59
ObjectInputStreamのreadObject()でファイルを最後まで読みたいんですがどうもうまくいきません。
whileのところが今のままではjava.lang.Object と int は比較できません。というエラーがでます。
どなたか教えてください。

/**************** ファイルから入力 *****************/
List messages = new ArrayList();
try{
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream( file ) );
Object obj;
// ファイルの終端に達するまで読み込む
while( ( obj = ois.readObject() ) != -1 ){
Map map = (Map) obj;
messages.add( map );
}
if( ois != null ) ois.close();
}
catch( Exception ex ){
ex.printStackTrace();
}
finally{
System.out.println( "end input" );
}

703:デフォルトの名無しさん
07/05/20 11:20:04
whileの中の-1ってなんだ? 説明できるか?

704:デフォルトの名無しさん
07/05/20 11:24:28
とりあえずclose()する前にflush()しとけ

705:デフォルトの名無しさん
07/05/20 11:28:07
教える側も素人かよ^^;

>>702
とりあえずJavaDoc嫁。EOFを返すなどと何処に書いてある?
2chを辞書代わりに使うな、むしろ時間の無駄と分かるぞ。

706:デフォルトの名無しさん
07/05/20 11:31:41
ObjectInputStreamのAPIドキュメントに
>>バイト単位の読み込みでは、バイトが読み込まれたときに -1 が返されます。プリミティブ読み込みでは、EOFException がスローされます。
こういうこと書いてたので-1が返るのかなと思ってました。
それじゃもっとよんでみます

707:デフォルトの名無しさん
07/05/20 11:39:57
ああreadObjectはバイト単位でもプリミティブ単位でもないのかごめん

708:デフォルトの名無しさん
07/05/20 11:43:36
>>700
どうしてそんな偉そうなんだ?

709:デフォルトの名無しさん
07/05/20 11:49:22
>>708
逆ギレかよ、わかんねーならそれなりの態度があるだろうに

710:デフォルトの名無しさん
07/05/20 13:45:50
2ch向いてねえな

711:デフォルトの名無しさん
07/05/20 16:04:19
無職乙

712:デフォルトの名無しさん
07/05/20 17:22:35
年数を入力して、うるう年と一般の年を判別後、月を入力して、
その月が何日あるかについてのプログラムを組んでみたのですが、

コンパイル問題が未解決です。
構文エラーがあります。"}" を挿入して MethodBody を完了してください。
構文エラーがあります。"}" を挿入して ClassBody を完了してください。

と出て実行できません。
最後の『 } 』の数は合っていると思うのですが、何故エラーが出ているのでしょうか?

713:712
07/05/20 17:23:51
public static void main(String[] args) {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("今は何年ですか?");
String line=reader.readLine();
int year=Integer.parseInt(line);
if(year%4==0)
{
System.out.println(year +"年ですね。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month=Integer.parseInt(line);

if(month==2){
System.out.println("2月の日数は28日です");
}else if(month==4 || month==6 || month==9 || month==11){
System.out.println(month +"月の日数は30日です");
}else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
System.out.println(month +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}

}

714:712
07/05/20 17:24:33
else if(year%4!=0)
{

System.out.println(year +"年ですね。うるう年です。");
System.out.println("今月は何月ですか?");
line=reader.readLine();
int month2=Integer.parseInt(line);

if(month2==2){
System.out.println("2月の日数は29日です");
}else if(month2==4 || month2==6 || month2==9 || month2==11){
System.out.println(month2 +"月の日数は30日です");
}else if(month2==1 || month2==3 || month2==5 || month2==7 || month2==8 || month2==10 || month2==12){
System.out.println(month2 +"月の日数は31日です");
}else{
System.out.println("月数の範囲を超えています");}
}
}catch(IOException e){
System.out.println(e);
}catch(NumberFormatException e){
System.out.println("月に入力できる数は1~12の実数です");}
}
  }
}

715:712
07/05/20 17:26:50
開発環境はEclipsです

716:712
07/05/20 17:58:54
あれ?なんだかよく分からないうちに自己解決しました。

何が問題だったんだろう……

717:デフォルトの名無しさん
07/05/20 19:23:19
つ保存していない
つ余計な括弧がある

つ右クリック ⇒ ソース ⇒ フォーマット

718:デフォルトの名無しさん
07/05/20 19:32:20
宿題があるんですけど教えてください。

719:デフォルトの名無しさん
07/05/20 19:36:31
>>718
スレ違い

★★ Java の宿題ここで答えます Part 61 ★★
スレリンク(tech板)

720:デフォルトの名無しさん
07/05/20 22:51:05
スタンドアロンプログラムをWindows上で動かし、
フォルダを指定しエクスプローラを開く、
といった処理をしたいんですが、なかなか情報が見つかりません。

なにか良い方法があれば教えてください。
ちなみにGUIはSWTを使用し作成しています。

721:デフォルトの名無しさん
07/05/20 23:25:16
>>720
質問が良くわからないんだけどSWTでエクスプローラーを作ったって事?
他にGUIが見当たらないんだが・・・。

722:デフォルトの名無しさん
07/05/20 23:42:14
>>720
Runtime.exec(String command)
どう開くかは適当に。
cmd /c start ......
とか
URLリンク(support.microsoft.com)
とか
ところで >>603-608 のながれと関係あるの?

723:デフォルトの名無しさん
07/05/20 23:52:30
javaやってる人ってオブジェクトとインスタンスって混ざって言ってるような
きがする、なんか違いあるの?

724:デフォルトの名無しさん
07/05/21 01:32:36
クラス + インスタンス = オブジェクト


725:デフォルトの名無しさん
07/05/21 06:13:54
オブジェクトという名前の基底クラスがあるから紛らわしい

726:デフォルトの名無しさん
07/05/21 11:47:38
テキストファイルの内容の一部だけ削除したいんですけど
一回全部よみこむ→該当部分削除→書込み直す
っていう方法は思いついたんですけど、
効率悪い気がするんですが、ほかにいい方法ってないですか?

727:デフォルトの名無しさん
07/05/21 12:08:54
ResultSet型のオブジェクトに代入されている結果セットのレコード数を知りたいんですが、何かいいメソッドって用意されていますか?

728:デフォルトの名無しさん
07/05/21 12:19:33
いまこのページ(↓)を読んでパッケージについて勉強してました。
URLリンク(www.ytp.ne.jp)

このページで言うところの C:\Source\Java\test\HelloWorld2.class に対して
C:\Source\Java\test>java HelloWorld2
と実行するのと
C:\Source\Java\test>java test.HelloWorld2
と実行するので結果に差がある(前者はエラーになる)ことは確認しましたが、
いまいち納得ができません。

ディレクトリ直下のHelloWorld2.classを直接指定するのと
CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで
何が変わってくるのでしょうか?

729:デフォルトの名無しさん
07/05/21 13:04:27
>>728
javaコマンドの引数に指定するのは、ファイル名ではなく
パッケージ名を含むクラス名(FQCN:完全修飾クラス名)であることに注意。

”java HelloWorld2”のコマンドは、
HelloWorld2.classを参照するよう指定しているのではなく、
クラスパスからHelloWorld2というFQCNのクラスを見つけて、
それを実行するよう指定している。
この場合、HelloWorld2のFQCNはtest.HelloWorld2なので、
該当するクラスがクラスパスにないためNoClassDefFoundErrorになる。

730:デフォルトの名無しさん
07/05/21 13:13:53
>>728
補足。パッケージ名はclassファイル自体に埋め込まれるので、
HelloWorld2.classをC:\Source\javaに移動しても、
HelloWorld2のパッケージを移動したことにはならない。

731:デフォルトの名無しさん
07/05/21 13:53:20
>>727
おまえはおれか


732:デフォルトの名無しさん
07/05/21 14:25:56
まず訂正を。自分の書き込みを見てびっくりしたのですが、

>ディレクトリ直下のHelloWorld2.classを直接指定するのと
>CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで

の2行目は\test\HelloWorld2.classのミスタイプです。

>>729
回答ありがとうございます。
.classファイルを探すのではなく、FQCNでクラスを探しに行くから
test.HelloWorld2は存在するけれどHelloWorld2なんていう物は
存在しないという事ですね。

>パッケージ名はclassファイル自体に埋め込まれるので、
>HelloWorld2.classをC:\Source\javaに移動しても、
>HelloWorld2のパッケージを移動したことにはならない。

これについてですが、試しにソースはいじらずに.javaファイルを
C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、
Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが
見つけられずにコンパイルできませんでした。
また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して
java test.HelloWorld2 してみたら
Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2
が出てしまいました。
「パッケージを移動したことにはならない」というのは
「単純にフォルダ移動してもパッケージ情報(?)は変わらないから
 パッケージと同名のフォルダに入れておかなければならない」
という意味でしょうか?

733:728
07/05/21 14:28:00
名前入れ忘れ。。。
>>732>>728です。

734:デフォルトの名無しさん
07/05/21 14:53:29
>>732
そういう意味でおk

735:デフォルトの名無しさん
07/05/21 15:33:15
>>731
結局API読みまくった結果、ResultSetを直でいじくりまわすのはやめて、
内部クラス作ってそれのpublic変数に結果セットの最終行までResultSet.getStringしてって
ArrayListのオブジェクトにつっこんでArrayListのオブジェクト.size()しました。
配列のサイズきめたくて結果セットの行数しりたかったんですけど、配列作るよりArrayListつかったほうが何かすっきりしました

736:デフォルトの名無しさん
07/05/21 17:14:08
>>732
合ってるがもっと単純明解な前提条件があるぞ。
フォルダの移動はOSのオペレーション、パッケージの指定はjavaの仕様。
根本的、本質的にもこの二つはまったくの別物。
くっつけて考えてしまうならそこが"間違えて分からなくなってる"部分だ。
まずは問題の切り離しからだな。

737:デフォルトの名無しさん
07/05/21 17:52:51
ネットワーク越し(現在使用しているのはRMI)にIterator的なオブジェクトを
渡して受け取り側が辿れるようにするには、各メソッド内で通信するよう自前で作るしかないのでしょうか。

738:デフォルトの名無しさん
07/05/21 22:04:02
Byte a[]={0,0,0,1};

をa[0]~a[3]のバイト列をもつint型に変換する方法教えてください。

739:デフォルトの名無しさん
07/05/21 22:11:55
a[0]<<24|a[1]<<16|a[2]<<8|a[3]

740:デフォルトの名無しさん
07/05/21 22:24:35
すまんすまん
a[0]<<24|a[1]<<16&0xff0000|a[2]<<8&0xff00|a[3]&0xff
こうだ

741:デフォルトの名無しさん
07/05/21 22:36:31
>>738
new DataInputStream(new java.io.ByteArrayInputStream(a)).readInt();
java.nio.ByteBuffer.wrap(a).getInt();

742:デフォルトの名無しさん
07/05/21 22:58:25
>>727
適当なトランザクションレベルで select count(適当なカラム) from テーブル
という SQL を発行すればいいよ。リソースを消費を気にしないなら count(*) でも可。

743:デフォルトの名無しさん
07/05/21 23:10:41
>>735
対策まで一緒だな
おまえはおれか

744:デフォルトの名無しさん
07/05/21 23:13:21
>>737
質問の意図が良く分からんけど
org.JSON とか使うと解決するかもね

745:デフォルトの名無しさん
07/05/22 00:55:41
サーブレットでsubmitやセッションしたりしないでその画面のままテキストフォームから入力された値を取る方法ってありますか?


746:デフォルトの名無しさん
07/05/22 01:14:01
セッション関係無くね?

747:720
07/05/22 01:24:15
ご回答してくれた方ありがとうございました。

>>721
自分で作ったGUIからWindowsのエクスプローラを呼ぶには?
という質問でした。

結局JNI経由でWINAPIのShellExecuteを呼び出す形式で解決しました。
Webしかやったことない自分としては
GUIは妙に難しく感じます^^

748:デフォルトの名無しさん
07/05/22 01:25:57
JavaScriptを使えばいい
フォームの入力チェックにも使われている

あー仕事がほしいー

749:720
07/05/22 01:29:44
>>745
Submitしないという時点でクライアント側の処理になります。
サーブレットでの処理は無理です。
Javascriptが一番手っ取り早いのでは?


750:デフォルトの名無しさん
07/05/22 01:46:17
>>745
言葉が意味わからんがsubmitなしではservletに渡すことは普通は無理

XMLHttpRequestを使えばできる(ブラウザー依存)
いわゆるAJAXだな


751:デフォルトの名無しさん
07/05/22 02:49:06
>>745

Ajax

GWT


752:デフォルトの名無しさん
07/05/22 05:56:30
>>727
実は最初はそうしてたんですが、レコード数が膨大でcount(*)のリソースがどうしても気になって気になって、今の方法にしました。
>>743
もうステップ数を気にする時代ではないような気がしたので、リソースとのバランスを見ても、この方法がやはりベストなのかなと。
贅沢を言わせてもらうと>>727を読んだ時点で教えてもらいたかったです・・・



753:デフォルトの名無しさん
07/05/22 06:11:20
>>752
ごめん
ほぼ同じペースで同じことやってるみたいなのでw

当初は ArrayList へ移し替えやってたんだけど
いろいろ事情があって
結局いまは ArrayList はやめて JSONArray に変更したんだけど
標準のコンテナ(Hash Map など)よりも意外と便利で病みつきになりそう


754:デフォルトの名無しさん
07/05/22 10:12:13
>>744
ありがとうございます。
質問の意図が分かりづらかったようですみません。

ネットワーク越しにリストとなるデータを転送する際、コレクションや配列をそのまま渡すと
データが大量だった時にメモリを圧迫する可能性があるため、一気に渡すのではなく
少しずつ渡す必要があります。

そうするとIteratorのようなインタフェースから少しずつ取得できると理想ですから、
現在の私の状況であれば RMI 通信を隠蔽した Iterator 実装があると理想だったのですが、
見つけられなかったため質問しておりました。

JSONライブラリがこの背景と合っていたか不明ですが、少々調べてみます。

755:デフォルトの名無しさん
07/05/22 15:48:01
>>754
その渡そうとしているデータは、まさかDBからのクエリ結果だったりはしないよね?

756:デフォルトの名無しさん
07/05/22 16:07:53
なんでSunの命名規約はパッケージ名を全て小文字にすることになっているんですか?
longpackagenameのように長いと読みにくいです。
LongPackageNameの方がいいと思うのですが。

…とうちのリーダー(Java未経験)が仰ります。
どうすればいいでしょうか?

757:デフォルトの名無しさん
07/05/22 16:29:05
>>756
long_package_name にするとか……

758:デフォルトの名無しさん
07/05/22 16:38:23
大文字と小文字を区別する環境にも、そうでない環境にも同じように対応するためじゃね?
ディレクトリ名がHogeとhoge両方作れてしまうOSとか。

759:デフォルトの名無しさん
07/05/22 16:49:23
>>756
どうぞご自由に。

それは厳密に規定された規約というよりガイドラインのはずです。
名前の衝突回避と読みやすさのために用意されています。

外部に公開するライブラリとかには止めた方がいいと思いますが
閉じたアプリケーションで、利用する分には害がないと思います。

が、自分の経験だけに基づいてプロジェクトに他の言語の流儀を持ち込むと
利用しているライブラリ等とずれるので、かえって汚くなってしまう可能性もあります。

In Rome, do as the Romans' do.

760:デフォルトの名無しさん
07/05/22 17:49:58
>>755
いえ、Iteratorの開放がリソースを制御していることはありません。
外部ライブラリですが、外部ライブラリがそのまま持ってしまっていると言う
事もないようです。

761:デフォルトの名無しさん
07/05/22 19:07:45
>>759
いまは仕様じゃなかったか?
ファイルシステムの都合で利用できない文字を含む場合はUnicodeエスケープしろって書いてなかった?

昔はクラス名もパッケージ名も単語の頭は大文字を推奨してたけどすぐ変わったよ。

762:デフォルトの名無しさん
07/05/23 02:03:44
URLリンク(www.itmedia.co.jp)
{"ResultSet":
{"type":"web",
"totalResultsAvailable":242000000,
"totalResultsReturned":3,
"firstResultPosition":1,
…略…,
"Result":[
{"Title":"Apple",
"Summary":"Macintosh hardware, software, and Internet tools. Offering Quicktime info, developer resources, and other items related to Apple computers.",
"Url":"http:\/\/www.apple.com\/",
…略…
},
{"Title"、"Summary"、など次の結果…},
…略…
}
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch