1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド100【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1175317038 /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
620 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 06:24:48 ] >>609 ちなみに == true を書く派だが、これは盲点。 if( b = false) ってバグは怖いな ためしにint あたりで同じバグを書いてみよう if(i = 10) とかね。 こっちはコンパイルエラーとなる。 実はJavaの場合、代入式の実行結果として代入値が返されるんだわ。 だからint の場合は、代入値(10)が ifの論理式の所に渡されるからNG。 これに対して、boolean の場合は、falseが渡されるから、結果としてOK。 そう考えると、612の主張もアリと感じる。
621 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 06:45:48 ] 比較演算の結果は boolean なので、 boolean を true, false と 比較するというのなら比較演算の結果も当然比較するべきだろう。 その結果も boolean なので(以下略
622 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 07:37:55 ] (...(((b == true) == true) == true) ... == true)
623 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 08:06:04 ] 無限再帰ってこわくね?
624 名前:デフォルトの名無しさん [2007/05/18(金) 10:24:01 ] javaって肥大化していくCで書かれたソフトウェア開発コスト下げれるの? 速度速いしC++の方がいいと思うんだけど。
625 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:31:11 ] >>624 JavaでCのソフトは作れないなぁ
626 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:41:14 ] >>625 組み込みシステムとかは?
627 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 11:24:29 ] どの言語も使いどころが違うからなあ マルチリンガル必須だよ
628 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:30:18 ] boolean は、真偽値しか入ってこない型なんだから 判定では、比較させないのがバグを回避するのに有効だと思うが・・・・ Cや、Perlなど boolean以外の値も真偽判定に使えるような言語だと、 比較を書くのは真偽判定に使っていると明示すことこになって嬉しいんだけど Javaはbooleanでしか判定しないので比較を書かない方がいいと思う
629 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:46:29 ] >>628 ふむふむ。 それならば、メソッドの戻り値がbooleanの場合はどうする? if(isHogeHoge()) {} と if(isHogeHoge() == true) {} だと後者のほうが解りやすいと俺は思う。 変数だと書かないのもありと思うけど、でも!は嫌いだなぁ。 見落とすんだよね・・・
630 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:32:15 ] >>629 俺は >>628 じゃないけど、前者の方が良い。 if (!isHoge()) と if (isHoge() == false) でも前者かな。
631 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:33:19 ] == true を入れられると、何か頭を使わないと理解できない。 慣れの問題だろうが、俺はない方がはるかに分かりやすい。 というか、C/C++ 使ってると true と比較するのはものすごく抵抗がある。 ctype.h の is 系関数とか 1 以外の値も返すようになってる実装だったりすることも多いし。
632 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:40:30 ] C/C++ だと == NULL とか != NULL は良くやる。 ってか、文法似てるけど別の言語だからスレ違いだね。ごめん。
633 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:41:24 ] ポインタは真偽値じゃないから書くのが普通だろう。
634 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:46:46 ] >>629 個人的主観で言うならば日本語に直してスムーズに読める方を採用する if(isHogeHoge()){} →もしHogeHogeならば(比較的素直に読める) if(isHogeHoge() == true){} →もしHogeHogeが真ならば(いかいもプラグラム的)
635 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 14:31:32 ] >>618 こう考えるんだelse if(!b)else assert false; それは契約だと・・・・なんだって?到達不能だって?
636 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 14:33:19 ] >>635 b が別スレッドから変更される可能性があるんだよ。たぶん。
637 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:07:02 ] 何という危険なプログラム!
638 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:48:14 ] >>637 つ volatile
639 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:02:38 ] いや、それ何の解決にもなりませんから。
640 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:23:51 ] public class VolatileSolvesEverything { private boolean 解決 = false; /* 中略 */ if (解決) { /* 嘘やん(心の声) */} else { /* 到達不能ということにしたい */ } }
641 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:29:53 ] >>629 !を見落とすより間違った代入を見落とした方がバグとして痛いだろう
642 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 17:21:34 ] if(true - true == 0)
643 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 17:32:37 ] >>642 booleanは引き算できないってこと分かってる?
644 名前:デフォルトの名無しさん [2007/05/18(金) 18:02:16 ] 初心者の質問じゃないかもしれないけど、 どなたか教えてください。 ドメインaaaaa.comからbbbbb.com/ へ、 リンクが貼られているかをチェックするプログラムを作りたいと思っています。 現在サイト運営していて、 相互リンク先から本当に自分のサイトにリンクされているのかを、 確認したいと思っているのですが、 リンク件数が1000件を超えているため、 プログラムでチェックしたいとおもっています。 Javaでなくてもいいのですが、 JSpiderというものがあるのを知り、 こちらにかきこませていただきました。 べつに言語はJavaに固執しているわけではありません。 参考になるサイトなどありましたら教えていただけないでしょうか。 どなたかお願いします。
645 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:47:43 ] >>644 www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38472&forum=12&1
646 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:02:30 ] >>644 パッシブな調査方法でいいのなら、 ログのリファラをチェックするのが一番確実だと思います。 それだと、相互リンク自体が有効かどうかチェックできるし ネットワークトラフィックを発生させる事もありません。 1.相互リンクをお願いする 2.相手にリンク作ったら1回踏んで動いていることをチェックしてもらう 3.毎月(自分の納得する頻度で)ログをチェックする 4.相互リンクを結んでいる相手のリファラを持つアクセスが無い相手のみ目でチェック これでOK. 1000件以上も単なるリンクチェックだけに回るのは 極めて非常にとても無駄です。
647 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:17:52 ] 俺は ! の後には必ず空白入れるようにしてる。 if(! b) みたいに、目立つように。
648 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:18:05 ] >>644 q.hatena.ne.jp/1175700361
649 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:19:22 ] >>644 hp.webnavisys.com/php/
650 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:20:03 ] >>644 exp.webnavisys.com/tool/php0.html
651 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:25:57 ] >>647 俺らは ! は必ず三つ並べるようにしてる。 if(!!!b) みたいに、目立つように。
652 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:35:36 ] >>651 なにー! くそー、じゃあオレは4つ並べちゃうぞ
653 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:39:33 ] >>652 ちょw それヤバいwww
654 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:41:49 ] >>652 だめじゃん
655 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:42:27 ] >>653 ってか、3つや5つならオッケーなんだよな。 4つや6つ並べると負けってのは何か理不尽じゃね? 納得いかない奴の数→(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ry
656 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:48:07 ] >>653 wを2つ並べるのも避けてるみたいですが、意図的ですか!!!ww1w!w!!ww というか _, ._ 金曜の夜なのに (´・ω・) くそレスが次から次へと… ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)ww意図的ですか!!!ww1w!w!!wwwbw!!ww
657 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:24:47 ] >>638-639 結局、JSR-133って何が変わったんだっけ?
658 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:29:48 ] !!! って流石に ! に最適化されるよね?
659 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:36:31 ] (´・ω・) く あまり糞レス増やすなよー ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)!!! って流石に ! に最適化されるよね?
660 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:33:39 ] !って1個じゃなくてもいいの!?
661 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:34:59 ] !!?!
662 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:35:00 ] >>660 単項演算子だからね。
663 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:35:44 ] 1++++---+--+++++-+-++-+2
664 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:42:10 ] ああそうか2個あったらfalseの逆になるのか
665 名前:デフォルトの名無しさん [2007/05/19(土) 00:08:50 ] >>645 >>646 >>648-650 ありがとうございます。 参考にさせてもらいます。
666 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:21:33 ] >>663 構文エラーだね。
667 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:27:41 ] 1+ + + +- - -+- -+ + + + +-+-+ +-+2
668 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:30:44 ] >>667 マジレスすると、Java では 1 ++ ++ -- + -- ++ ++ + - + - ++ - + 2 と区切られなければならない。 1++2 も同じ理由でコンパイルエラーになる。
669 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:32:35 ] マイナスが一個足りないな
670 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 02:45:35 ] ネットワーク対戦のゲームを作りたいのですが、 クライアントサイドにSwingをサーバサイドにサーブレットを使おうと考えています。 通信部分はどうしたらいいのでしょう。
671 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 02:51:40 ] ServletならJakarta Commons HTTP Clientを使っとくのが楽かもね。
672 名前:670 mailto:sage [2007/05/19(土) 03:02:16 ] >>671 ありがとうございます。 ググってみたのですがよくわかりません… 詳しく教えていただけないでしょうか?
673 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 03:39:51 ] わからんのなら素直にSocketでも使っとけ。
674 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 05:43:23 ] >>671 HTTPSでも問題ないですか?
675 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 05:45:14 ] >>670 ttp://jakarta.apache.org/site/downloads/downloads_commons.html
676 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 06:17:14 ] ttp://www.ipa.go.jp/security/awareness/vendor/programming/a03_04.html このページにある、リスト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 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 07:41:15 ] >>676 > 10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、 そんなこと書いてない。テキストを誤解している。
678 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 07:43:54 ] >>676 「Passwdを取得する」ではなく「Passwaを引数とする」ではないの?
679 名前:676 mailto:sage [2007/05/19(土) 08:11:34 ] そのとおりです、オブジェクトを引数として渡してるだけでしたorz 何故か初歩的なこと忘れてました。 「dispMenu(Passwd pwd)」って記述したら自動的に 「dispMenuに渡された引数がそのままPasswdに渡されて、尚且つpwdオブジェクトが生成される」とか 変なことばかり考えてまして。 ありがとうございました。
680 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 13:46:16 ] 注:str.java の操作は、未チェックまたは安全ではありません。 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください というエラーがコンパイルすると出るんですがなぜですか? 同じものを学校のPCでやってもでなかったのに
681 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 14:13:45 ] >>680 javac -source 1.4 str.java ってやってみ? 学校のコンパイラのバージョンは古いからエラーが出なかったんだ。
682 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 14:25:36 ] >>681 できました! ありがとうございます
683 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 19:40:43 ] >>683 とりあえずエラーが発生してる場所が違うな。 >at java.lang.Integer.parseInt(Unknown Source) >at RinkouPractice4.main(RinkouPractice4.java:22) まぁこれ見る限りreadLine()してきたデータそのままparseInt()に渡してるんだろうな
685 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:01:22 ] >>680-682 Generic使えよ
689 名前:デフォルトの名無しさん [2007/05/19(土) 23:53:00 ] 入力データのチェックって何ですか? まだ出来ないんですが誰か助けてください
690 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:14:34 ] J2EEのライブラリを書くときにServlet APIのインタフェースライブラリだけが欲しいんですが これってTomcatとかから借りてきてそのまま配布してもいいんですか?
691 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:30:24 ] >>689 readLineメソッドで読み込んだ文字列(変数ha以外)が数字又は一文字目が"-"以外だったら エラー処理を行う(再入力させるもよし、Exception投げるもよし、問答無用でプログラム終了でも…) 要するにInteger#parseIntがちゃんと処理できる値が入力されていることを保証してやる ユーザが作り手の意図した通りの入力してくれるとは限らないから入力チェックは必須。
692 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 02:11:35 ] >>688 残念ながら1.4が本当のターゲットらしいんでgenericsを使っちゃコンパイルできなくなる。 別の所でそれより新しいバージョンでコンパイルして警告を出されて焦ったようだ。
694 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 04:08:12 ] >>693 つ -source 1.5 -target jsr14
695 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 04:13:02 ] WindowsでもLinuxでも動作する USBポートに対する入出力を行うライブラリでオススメ教えてください
696 名前:デフォルトの名無しさん [2007/05/20(日) 04:23:35 ] 整数を任意に入力していき、0を入力したら最大値は何番目にでてきたか出力する プログラムですが、たとえば 0>10 1>11 2>0 と入力すると、本来 1 と出力されてほしいのに、 1 1 と出力されてしまいます。 どこがおかしいのかご教授くださいmm
697 名前:697 [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 06:03:42 ] >>695 jUSBを自分でwindowsに対応させる。
699 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 06:26:32 ] >>694 これ便利だな はたからthx
700 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 07:25:48 ] >>696 境界条件を頭の中でシミュレート。わかんねーならトレース実行でもしろ。
701 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 08:35:25 ] >>694 1.4でコンパイルするのが目的で1.5以上のコンパイラの機能は使えない 1.4の実行環境をターゲットにして1.5以上でコンパイルするんじゃないから 1.4のコンパイラしかない環境でコンパイルするにはそのオプションは空しい
702 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:20:04 ] whileの中の-1ってなんだ? 説明できるか?
704 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:24:28 ] とりあえずclose()する前にflush()しとけ
705 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:28:07 ] 教える側も素人かよ^^; >>702 とりあえずJavaDoc嫁。EOFを返すなどと何処に書いてある? 2chを辞書代わりに使うな、むしろ時間の無駄と分かるぞ。
706 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:31:41 ] ObjectInputStreamのAPIドキュメントに >>バイト単位の読み込みでは、バイトが読み込まれたときに -1 が返されます。プリミティブ読み込みでは、EOFException がスローされます。 こういうこと書いてたので-1が返るのかなと思ってました。 それじゃもっとよんでみます
707 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:39:57 ] ああreadObjectはバイト単位でもプリミティブ単位でもないのかごめん
708 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:43:36 ] >>700 どうしてそんな偉そうなんだ?
709 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:49:22 ] >>708 逆ギレかよ、わかんねーならそれなりの態度があるだろうに
710 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:45:50 ] 2ch向いてねえな
711 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:04:19 ] 無職乙
712 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:22:35 ] 年数を入力して、うるう年と一般の年を判別後、月を入力して、 その月が何日あるかについてのプログラムを組んでみたのですが、 コンパイル問題が未解決です。 構文エラーがあります。"}" を挿入して MethodBody を完了してください。 構文エラーがあります。"}" を挿入して ClassBody を完了してください。 と出て実行できません。 最後の『 } 』の数は合っていると思うのですが、何故エラーが出ているのでしょうか?
713 名前:712 mailto:sage [2007/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 mailto:sage [2007/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 mailto:sage [2007/05/20(日) 17:26:50 ] 開発環境はEclipsです
716 名前:712 mailto:sage [2007/05/20(日) 17:58:54 ] あれ?なんだかよく分からないうちに自己解決しました。 何が問題だったんだろう……
717 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:23:19 ] つ保存していない つ余計な括弧がある つ右クリック ⇒ ソース ⇒ フォーマット
718 名前:デフォルトの名無しさん [2007/05/20(日) 19:32:20 ] 宿題があるんですけど教えてください。
719 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:36:31 ] >>718 スレ違い ★★ Java の宿題ここで答えます Part 61 ★★ pc11.2ch.net/test/read.cgi/tech/1179168569/
720 名前:デフォルトの名無しさん [2007/05/20(日) 22:51:05 ] スタンドアロンプログラムをWindows上で動かし、 フォルダを指定しエクスプローラを開く、 といった処理をしたいんですが、なかなか情報が見つかりません。 なにか良い方法があれば教えてください。 ちなみにGUIはSWTを使用し作成しています。