1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:52:10 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド115【歓迎】 pc11.2ch.net/test/read.cgi/tech/1210529127/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
552 名前:デフォルトの名無しさん [2008/06/24(火) 15:25:52 ] すいません解決しました。 ありがとうございました
553 名前:デフォルトの名無しさん [2008/06/24(火) 16:01:27 ] javaの土初心者です。JavaでWindows PCの I/O空間アクセス、物理メモリアクセス ってどのようにするんですか?
554 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 16:21:53 ] >>553 JNIとOSのディバイスドライバが必要だな。 そもそもWin32でそれをする方法を知ってるのか?
555 名前:デフォルトの名無しさん [2008/06/24(火) 17:13:06 ] >>554 デバイスドライバを作りたくないからJavaでやろうと考えたのですが... 今回はI/O空間アクセスが出来ればOKで、物理メモリアクセスはあればなんかの役に立つかな ぐらいなんですが Windowsならドライバで IO空間アクセス: READ_PORT_XXX、WRITE_PORT_XXX で行う 物理メモリアクセス: MmMapIoSpaceしてREAD_REGISTER_BUFFER_XXX、WRITE_REGISTER_BUFFER_XXX で行う で使うときにはDeviceIoControlで叩く ってC/C++のWinプログラム初心者でも知っている知識ですよ。 初心者Javaな人でもこれぐらいは知っていますよね。
556 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:22:57 ] ここはクマーとかいうAAを貼るところだろうか?
557 名前:デフォルトの名無しさん [2008/06/24(火) 17:27:05 ] アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?
558 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:38:27 ] 違います 低脳エラー(うぽぽんエラー)です
559 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:40:41 ] >>555 すっげー 俺もこんくらいの知識ほしい
560 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:50:21 ] >>85-105 なんか爆笑した。>>85 の言動にw >>109 そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。 あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、 それだったらEffective Javaのほうが全然役に立つ。
561 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:51:04 ] そクマー
562 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:56:02 ] >>121 Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。 あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。 アンチがあれを読んで昔飛びついていた記憶がある。
563 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:57:58 ] >>134 > ただM$の都合で、変な改定されるのが怖いんです。(J++とかw) そのくせ、こんなこと言ってるよな。VBにしておけよ電波。 > どうしてjavaは初心者にこうも厳しいんですか? > 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。 > VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。 > これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。 > とくかく情報の出し惜しみはやめてほしいな。 > なんで、java弄るひとって性格の悪い人がおおいんだろ。 > java関係の本でもろくなのないし。
564 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:00:22 ] >>141 > LinuxではC#動かないでしょう? Monoで動く。 > .NETははっきりいって糞くらえですよ。(食事中のかたすんません) VB忠なのに。
565 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:01:37 ] >>146 > ふりだしに戻る・・・ > ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。 > > 自分なりの分析ですが > java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。 > もしくは、いま勉強中で資格とって就職しようとしている人々。 > したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。 > そんなエゴが見え隠れしている。 一昔前のC言語厨やUNIX屋じゃあるまいし。 このスレ見ればわかると思うが、素人がよく質問しに来ているが。
566 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:04:05 ] >>154 たいした警鐘に感じないなあ。 Javaの情報は10年前に比べれば腐るほどあるし ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ
567 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:05:19 ] この使い方の意義が分からん漏れはヴァカですか? StringBuffer sb; sb.append("Hello, ").append("world!!");
568 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:15:01 ] >>567 意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ
569 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 19:08:36 ] >>549 validateを交換可能にしたいんでしょ? まあ2のTemplateMethodパターンかなあ
570 名前:デフォルトの名無しさん [2008/06/24(火) 19:09:11 ] java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、 実装方法を教えてください。 フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。 processEventメソッドをオーバーライドしたり、 リスナを追加してもどうもフックされていないようです・・。
571 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 19:19:11 ] >>567 それだったらStringBufferをStringBuilderに変えて StringBuilder sb = new StringBuilder(); sb.append("Hello, world!!"); したkなる。 new忘れていたようなのでつけておいた。 "Hello, "と"world!!"が文字リテラルではなく変数や定数だったら 意義はある。
572 名前:デフォルトの名無しさん [2008/06/24(火) 19:45:18 ] 5万ぐらいの激安のノートパソコンで 勉強できる?
573 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:05:32 ] >>569 ありがとうございました。 その方向で設計してみます。
574 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:42:39 ] JMFを使ってキャプチャした画像→ JNIを通してOpenCVに送り顔認識→ 認識した顔の中心座標を返す といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。 別にJNIを使わなくても顔認識ができればいいのですが、 OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。
575 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:56:56 ] >>572 何が?
576 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:59:29 ] >>572 勉強するだけなら10年前のでもできるだろ 何を勉強するのかしらんけど
577 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:00:01 ] 4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。 インタフェースの中にある以下のようなソースなんですが public interface IntComparator{ public static final IntComparator NATURAL_COMPARATOR = new IntComparator(){ public int compare(int i1, int i2){ return i1 < i2 ? -1 : i1 > i2 ? 1 : 0 ; } }; } 出典:ttp://mitv2.net/algorithm/sort1.html#IntComparator 1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、 これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか? (クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?) 2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。 Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか? 長文になってしまいましたが、よろしくお願いします。
578 名前:577 mailto:sage [2008/06/24(火) 21:01:02 ] インデントきえたーーー 読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…
579 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:04:21 ] >>578 専ブラならポップアップで見てみ
580 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:00:48 ] >>577 それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。 指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。 定義したメソッドは、そこで生成するインスタンスだけのもの。
581 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:09:13 ] >>577 1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに 名無しのクラスからインスタンスを生成することができる。 書式的には、 new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 } みたいな感じ。 名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。 大抵、親クラスのメソッドのオーバライドしないと意味がない。 クラスじゃなくてインターフェースでもおk 似たようなものに、配列の生成と初期化を同時に行う方法がある。 new int[] { 1, 2, 3, } とか。 いちいち配列を入れる変数名を用意して名前空間を汚さずとも そのままメソッドの実引数などに使える。 ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ
582 名前:577 mailto:sage [2008/06/24(火) 22:51:54 ] >>580 >>581 ありがとうございます。 読みながら想像してたのと大体合ってたようで一安心です。 クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。 もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。
583 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:28:01 ] クラスの設計を、コードで直接行う場合のメリット、デメリット を教えて下さい
584 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:22:10 ] サイズを固定しないJTableを作りたいのですが、 可変長の二次元配列ってどうやって表現すればよいのでしょうか? 一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・
585 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:29:21 ] >>584 配列じゃなくてコレクション使ったMODELで
586 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:52:08 ] >>585 引数がVectorのDefaultTableModelを使うという事でしょうか?
587 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:53:39 ] javaで図形処理をさせる課題が出て難しく感じたので これを機に参考書を買おうと思っています。 wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが 図形処理関係では他にどういう参考書があるか知りたいので 教えてください。
588 名前:デフォルトの名無しさん [2008/06/25(水) 01:20:12 ] WebOTXでJavaを利用したアプリサーバを 構築してるんですが、なんというか情報が少なすぎる… 参考書があるか知りたいですが、探し方が悪いのか 丸善とかでは見つからなかった。 WebOTXでJavaをつかったアプリサーバ構築 みたいなテーマの本はないでしょうか・・・
589 名前:デフォルトの名無しさん [2008/06/25(水) 08:08:51 ] Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・ int[] a = {10, 9, 8, 7, 6} int[] b = {1, 2, 3} a = b; とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?
590 名前:デフォルトの名無しさん [2008/06/25(水) 08:09:37 ] ↑{10, 9, 8, 7, 6} のメモリ領域が
591 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:23:43 ] >>589 言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。 どのタイミングで回収されるかは実装依存。 あと、C言語だと、スタックに確保されるんじゃなかったか? それ。
592 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:47:12 ] 指定した番号目の素数を出すにはどうしたらいいですか?
593 名前:デフォルトの名無しさん [2008/06/25(水) 11:49:39 ] age
594 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:56:34 ] 素数を降順でリストに突っ込んで取だしゃいいだろ。
595 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:57:20 ] >>594 すみません、素数を出すコードがわかりませんので。
596 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:03:16 ] エラトステネスのふるいでググレ
597 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:06:59 ] 了解
598 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:41:32 ] 数日前にチャート表示のプログラムを相談したものですが、 ttp//plaza.rakuten.co.jp/meime/diary/200603310002 を参考にしてみます。相談に乗っていただきありがとうございました。
599 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 13:42:22 ] >>594 なんで降順?
600 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:10:17 ] そんなどうでもいいこと聞いてなんになるの?
601 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:22:59 ] 普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw 降順の素数番目ってどうすんだw
602 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 17:11:11 ] じゃあ昇順てことで
603 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:27:38 ] スレ違いかもしれませんが、DoJaのコンソールの Main :java.lang.NullPointerException Test java.lang.NullPointerException at MainCanvas.<init>(+40) at Test.start(+7) MainCanvas このエラー出力の(+40)や(+7)はどういう意味ですか?
604 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:31:26 ] バイトコードの位置 <init>メソッドの40バイトめとstartメソッドの7バイトめ
605 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:23:38 ] 進むほど↑↑なのが昇順。 進むほど↓↓なのが降順。
606 名前:デフォルトの名無しさん [2008/06/25(水) 21:47:03 ] 自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか? 仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。 自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。 ご教授、よろしくお願いします。
607 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:48:08 ] new コンストラクタ(引数).メソッド(引数) という構文を見たのですが(左辺には何も無し)、これは staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い! というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?
608 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:48:30 ] >>605 時間軸で見た前方後方くらいにわかりづらいな
609 名前:デフォルトの名無しさん [2008/06/25(水) 21:59:50 ] >>607 いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。 つまり Hoge hoge = new Hoge(param); Hoge.method(param); の2行を new Hoge(param).method(param); に省略。
610 名前:デフォルトの名無しさん [2008/06/25(水) 22:01:36 ] ああスマン、上のHoge hoge.method(param)の間違い。
611 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:12:41 ] >>577 なんでそんなものを作るのか。 java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに
612 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:15:07 ] >>589 AtomicIntegerとか使えばいい
613 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:16:18 ] >>607 インスタンスは必要だが参照として保持する必要がない場合に使う書き方 FileChanel channel = new FileInputStream(file).getChannel(); とかよく使うパターンかね
614 名前:607 mailto:sage [2008/06/25(水) 22:47:43 ] >>609 >>613 ありがとうございます。 内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。 いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね? …ちょっと自信がなくなってきた… >>611 出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。
615 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:07:51 ] >>614 参照はポインタの一種と考えれば、まあ間違いはない。 ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う
616 名前:609 [2008/06/26(木) 07:50:26 ] >>614 出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。 参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。 ボクシングの説明をただ省きたかっただけなのかもしれないけどね。
617 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 08:02:11 ] IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。 これ1.5より前に書かれてるんだろうから仕方ないんじゃね?
618 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 09:47:01 ] HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。 パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。 具体的には、User-Agentが問題なようです。 GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?
619 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 12:54:34 ] JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!
620 名前:616 [2008/06/26(木) 13:21:43 ] >>617 おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。 よしんばほんとにそうだとして、俺を納得させてどうするw ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。
621 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 13:25:43 ] >>620 ってか、君こそ出典知ってどうするつもりだったん?
622 名前:デフォルトの名無しさん [2008/06/26(木) 14:59:17 ] メモ帳からデータを読み込むプログラミングを作りたいのですがうまくいきません 以下が私の作成したものです。NetBeansを用いました。 メモ帳の中のデータは 1 2 です。 package javaapplication2; import java.io.*; public class Load { public static void main(String[] args) { try { //(1) //(2)Fileオブジェクトの生成 FileReader fr =new FileReader("test.txt"); //(3)Fileオブジェクトの生成 int i,m,s,kai=0; //(7)読み込みデータがなくなるまで読み込み while ((i = fr.read()) != -1) { s=i; //(8)書き込むデータがなくなるまで書き込み m=i; kai = s + m; } fr.close(); System.out.print(kai); //(9)読み込みストリームを閉じる //(10)書き込みストリームを閉じる catch(IOException e) { } }}
623 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:03:23 ] >>622 コメントが意味分からないんだが、どうして欲しいんだ? ついでにそれはメモ帳からデータを読み込むプログラムとは言わないだろw
624 名前:デフォルトの名無しさん [2008/06/26(木) 16:07:41 ] >>622 どううまくいかないのか、期待したことと起きたことを明記してください。
625 名前:622 [2008/06/26(木) 16:34:45 ] 期待したことは、 1がsに入り2がmに入って、それらが足し算されkaiに3が入り 3が出力されるというものです。 起きた事は 100と出力されました。
626 名前:624 [2008/06/26(木) 16:47:12 ] >>625 FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。 ”メモ帳の中のデータ”と言っている(おそらく)テキストファイルの先頭から1バイトづつです。 足す前に System.out.println("i="+i); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。 またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。
627 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:49:32 ] >>625 e-words.jp/p/r-ascii.html sには最初'1'、つまり49が入る。 次に復帰改行で13、次に10が入る。 そして最後に'2'、つまり50が入る。 mも全く同じもの入れてるんだから、同じ。 つまり50+50=100が出力されてる。
628 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 17:36:11 ] >>626 >FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。 これは非常に語弊があると思うんだけど。。
629 名前:624 [2008/06/26(木) 17:50:00 ] 私の作成したのもがどのように振舞っているかは、良くわかりましたが、 どのように修正すれば良いかアウトラインが見えないので、 教えてください。
630 名前:626 [2008/06/26(木) 17:51:23 ] >>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。 >これは非常に語弊があると思うんだけど。。 そうでした、FileReaderは文字読みでした。 なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。
631 名前:630 [2008/06/26(木) 17:54:29 ] >>629 一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。
632 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:07:56 ] >>622 繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。 ちなみに、mとかsというのは何かの略ですか?気になる。
633 名前:624 [2008/06/26(木) 18:08:04 ] >>631 ありがとう
634 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:52:03 ] pc11.2ch.net/test/read.cgi/tech/1212085079/259 このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?
635 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:55:41 ] 基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・
636 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 19:18:47 ] 質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、 問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。 問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。 お勧めなどありましたら教えてください。
637 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:39:12 ] 質問です。 Java システムアイコンを抽出 / Chat&Messenger ttp://sattontanabe.blog86.fc2.com/blog-entry-64.html のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する サンプルプログラムが公開されているのですが、このプログラムでは 16*16サイズのアイコンを取得することしか出来ません。 Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?
638 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:27:39 ] >>637 無理っす。
639 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:47:09 ] メソッド名の書き方について質問です。 メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか? 例として aaaaaBbbbbCcccccDdddd というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。 そこで 1.aBCD 2.abcd 3.aaaaaBbbbbCcccccDdddd(略すべきではない) 4.その他 どれがいいのでしょうか?
640 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:53:52 ] aaaaaBCDとか
641 名前:使用書無しさん [2008/06/26(木) 23:00:45 ] netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ 考えたら略さないほうがいいと思うけど。
642 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:18:47 ] >>639 略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。 無意識のうちに>>639 が望む回答するように情報隠してる可能性もあるし。 例えば、命名規約のルールだって全部出してるわけじゃないでしょ。
643 名前:使用書無しさん [2008/06/26(木) 23:22:59 ] 634<< 配列よりVectorつかったらどうだ。 class A { public B parent=null; public void setParent(B parent){ this.parent=parent; } public B getParent(){ return parent; } } class B extends Vector<A>{ @override public void add( A child){ child.setParent(this); super.add(child); } public void add(int index,A child){ child.setParent(this); super.add(index,child); } } こんなもんかな。
644 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:43:35 ] >>639 長すぎるってのはクラスの設計が良くない兆候。 aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。 HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈
645 名前:デフォルトの名無しさん [2008/06/27(金) 00:05:06 ] >>624 ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。) 以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例 package javaapplication2; import java.io.*; import java.util.*; public class Load { public static void main(String[] args) { //データ格納用Listの準備 List<String[]> list = new ArrayList<String[]>(); try { FileReader fr =new FileReader("test.csv"); BufferedReader bf = new BufferedReader(fr); String st = null; while ((st = bf.readLine()) != null) { String[] line = st.split(","); list.add(line);//ファイル上1行の各数値を文字列として格納 } bf.close();
646 名前:デフォルトの名無しさん [2008/06/27(金) 00:05:38 ] //計算結果データ格納用Listの準備 List<Integer> result = new ArrayList<Integer>(); int sum = 0; for(String[] values: list){ for(String value: values){ int num = Integer.parseInt(value);//文字列を数値型に変換 sum += num;//同じ配列内の値の合計値を求める } System.out.println(sum); result.add(sum);//合計値を格納 sum = 0; } FileWriter fw = new FileWriter("result.csv"); PrintWriter pw = new PrintWriter(new BufferedWriter(fw)); for(Integer val: result){ pw.println(val); } pw.close(); }catch(IOException e) { e.printStackTrace(); } } }
647 名前:639 mailto:sage [2008/06/27(金) 00:11:41 ] レスどうもです。 今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか? その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、 それがいけなかったようですので実際に作っているのを出してみます。 ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。 ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、 この場合どうするべきか?というのが知りたかったのです。 ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。 より長いものが出てきた場合に参考にしておきたいので。
648 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:17:54 ] 今どき補完できるエディタ使おうよ
649 名前:使用書無しさん [2008/06/27(金) 00:19:47 ] >>647 それjavaの質問というよりセンスの問題じゃねえ? 昔cobolやってたころなんか母音略して子音だけで名づけてたな sprRndTheClckなんてな..
650 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:23:43 ] >>647 その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。 なので、メソッド名は同じになりオーバーライドすることになる。
651 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:28:29 ] >>647 頭字語で補完してくれるよ、最近のIDEは。 Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。 重複するものがなきゃもっと短かくてもOK。 あと、Javaではメソッド名の先頭は小文字な。
652 名前:639 mailto:sage [2008/06/27(金) 01:32:47 ] 開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。 今は全マシンにインストールされてるエディタがあるのでそれを使っています。 今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。 >>650 上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。 これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?