1 名前:デフォルトの名無しさん [2007/07/27(金) 08:46:32 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド103【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1182896607/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980 あたりで。
304 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 01:38:48 ] あの、関数の引数にfinalは付けるべきでしょうか。 関数内では値を変えることがないし変わって欲しくない場合、 finalを付けた方がいいとは思うんですが、 全てに付けているとパラメータの部分が長くなってしまい見づらいといえば見づらいです。 常識的にはどうするべきなんでしょうか。
305 名前:デフォルトの名無しさん [2007/08/07(火) 01:49:10 ] >>304 限りなく好みかもしれない場所の1つだな finalにした所でオブジェクトの内部は変更される可能性はある 引数に対して再代入する事自体を禁止し、FindBugsアタリでチェックしておけば不要とも言える (逆に言えば、メソッド内で引数への再代入を防止する為にfinalを付ける、だがw) 個人的には不要派
306 名前:デフォルトの名無しさん [2007/08/07(火) 01:50:10 ] final付ける場合と付けない場合もあるし、 つけなくてはエラーになるときがある。 べつに無理につける必要はないと思うのだが....
307 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 01:52:40 ] >>304 プロジェクトで決められてたら、それに従えばいい。そうでなければ好きにすれば良い。 経験的には手作業で final 付けてると、そのうち嫌気がさして止める。
308 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:06:45 ] 一番最初にやるHelloWorldなんですけどテキストに書いて それをコンパイルしようとしたんですけど 「javacは内部コマンドまたは外部コマンド、操作可能なプログラム またはバッチファイルとして認識されていません」となってしまいます。 どうしたらコンパイルできるようになりますか?
309 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:08:35 ] 環境変数でググれ
310 名前:デフォルトの名無しさん [2007/08/07(火) 02:10:14 ] >>306 final付けなくてはエラーになると本気で思っているならば勉強不足 それは匿名クラスなどに参照を渡しているからだろう
311 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:10:26 ] 環境変数PATHを設定する
312 名前:308 mailto:sage [2007/08/07(火) 02:23:25 ] とりあえずみんなが指摘してくれた通り環境変数見てみたんだけど多分あってると思う。 ;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね?
313 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:23:54 ] JDBCでのデータベース接続ができなくて困っています。以下のように作業を進めました。 postgres@debian$ createdb hellodb ------Connector.java------ package db; import java.sql.Connection; import java.sql.SQLException; import java.sql.DriverManager; public final class Connector { private static Connection conn; static { try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException ex) { throw new InternalError(ex.getMessage()); } } private Connector() { } public static Connection open() throws SQLException { return DriverManager.getConnection("jdbc:postgresql://debian/hellodb", "postgres", ""); } }
314 名前:308 mailto:sage [2007/08/07(火) 02:26:07 ] やっぱり駄目だ・・・誰か助けてくれ
315 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:27:05 ] カンマとピリオド再確認
316 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:33:38 ] あと、本当に 1.5.0 かどうかも。 実は 1.6.0 をインストールしてましたとか。
317 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:34:29 ] ------ConnectorTest.java------ package db; public class ConnectorTest { public static void main(String[] args) { System.out.println(Connector.open()); } } postgres@debian$ java -cp .:/usr/share/java/postgresql.jar db.ConnectorTest ------エラーメッセージ------ org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. db名、ユーザ名、パスワード名は大丈夫だと思うんですが・・・。
318 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:50:20 ] >>312 > ;C:\Program Files\Java\jdk1,5,0\binをpathに加えればいいんだよね? を加えちゃいかん ;"C:\Program Files\Java\jdk1,5,0\bin" 空白文字の扱いを知らんのか
319 名前:318 mailto:sage [2007/08/07(火) 02:52:26 ] しかもピリオドでなくてカンマやんw ;"C:\Program Files\Java\jdk1.5.0\bin"
320 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 02:53:01 ] >>312 pathに加えた手順を説明してみて
321 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:01:01 ] java的にはfinalな引数を導入したのは内部クラスから参照するためって事を知ってる前提で話してるんだよね? 人に聞くくらいなら内部クラスない場合は好み程度、と考えておけば良いんじゃない? 自分からfinal付ける明白な理由もなさそうだし。
322 名前:308 mailto:sage [2007/08/07(火) 03:04:37 ] 駄目だ・・・何でできないんだ?とりあえず315さんにいわれたようにカンマとピリオドはおk そして318さんに言われたとおりに;"C:\Program Files\Java\jdk1.5.0\binってPathのあとに つけて今にいたりました>>320
323 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:08:53 ] PATHをマイコンピュータのプロパティから変更してるなら、 プロパティをOK押して閉じてからコマンドプロンプトをいったん閉じて開きなおす。
324 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:10:35 ] そもそもC:\Program Files\Java\jdk1.5.0\binってフォルダの中にjavac.exeがあるのかね?
325 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:13:11 ] >>322 ちなみにうちの環境だと C:\Program Files (x86)\Java\jdk1.5.0_01\bin にjavac.exeはある
326 名前:308 mailto:sage [2007/08/07(火) 03:24:33 ] なんか頭がもうパニックだ・・・とりあえず本に書いてある通りに書くと class Examplel { public static void main(String args[]) { System.out.println("This is the output from Examplel"); } } をかいてそれをファイル名はExamplel.javaにして保存。実行するためにコマンド開いてjavac Examplel.java入力するらしい。 もう俺にはお手上げです。
327 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:28:25 ] >>326 それは関係無い コマンドプロンプトから "C:\Program Files\Java\jdk1.5.0\bin\javac.exe" -version って入れて Enter 押して結果を教えなさい
328 名前:308 mailto:sage [2007/08/07(火) 03:31:03 ] 指定されたパスが見つかりませんたって出ました
329 名前:デフォルトの名無しさん [2007/08/07(火) 03:31:06 ] ClassPath通してる?
330 名前:308 mailto:sage [2007/08/07(火) 03:33:52 ] よくわからない
331 名前:デフォルトの名無しさん [2007/08/07(火) 03:33:54 ] C:\Program Files\Java\jdk1.5.0\libの中の jarファイルにクラスパス通してないんじゃないの?
332 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:34:39 ] >>328 マイコンピュータ開いてCドライブ開いて・・・って辿っていってjavac.exeのあるフォルダ確認して。 Windowsの種類やJDKのバージョンによってこのフォルダのパスは変わるから。
333 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:35:11 ] よく釣りに付き合ってますねー 肝心なとこスルーして答えてないしメチャクチャ釣り臭いんですけど
334 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:36:37 ] >>333 は教えることもスルーすることもできないゴミ
335 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:36:45 ] >>328 ってことは、原因は 『C:\Program Files\Java\jdk1.5.0 に Java SDK をインストールしていない』 ってことになるんだけど、 [1] ダウンロードした SDK の確認(JDK と JRE と間違えてないか) [2] インストール場所の確認 をお願い
336 名前:デフォルトの名無しさん [2007/08/07(火) 03:36:45 ] 釣りだべ
337 名前:308 mailto:sage [2007/08/07(火) 03:45:11 ] ごめん釣りじゃなくて本当にわかんないんだよ・・・喧嘩しないでくれ >>332 よくわからない調べ方が。>>335 も調べ方がわからない。本当にすまん。初心者なんだ。
338 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:45:46 ] >>337 次の各問いに○か×で答えよ 1.C:\はあるか 2.C:\Program Filesはあるか 3.C:\Program Files\Javaはあるか 4.C:\Program Files\Java\jdk1.5.0はあるか 5.C:\Program Files\Java\jdk1.5.0\binはあるか 6.C:\Program Files\Java\jdk1.5.0\bin\javac.exeはあるか
339 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:51:11 ] もうjavac.exeをハードディスクの中で検索したら?
340 名前:308 mailto:sage [2007/08/07(火) 03:55:34 ] 1○ 2○ すまんもうこれ以上わからん・・・
341 名前:308 mailto:sage [2007/08/07(火) 03:56:15 ] >>339 ごめん。どうすればいいですか?
342 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:56:28 ] 実はJDKをインストールしていませんでしたというオチ?
343 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:57:58 ] >>340 じゃあJDKをインストールしてないんじゃないの? これはPCに元から入ってるものじゃないよ どこからダウンロードした? そもそもダウンロードすらしてない?
344 名前:308 mailto:sage [2007/08/07(火) 03:58:09 ] いや本についてる奴インストールしたと思う。
345 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:58:13 ] >>341 たぶんね、まじめな話パソコンに慣れてからのほうが良いと思うんだ。 門前払いする気は無いんだけど、PC の知識はどうしても必要になるから、今のままだと今後さらに悩むことになる。 とりあえず寝れ。寝て起きてまた考えろ。
346 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 03:59:20 ] >>341 HDD内のファイル検索すらしたことが無いのか? プログラミングはかなり時期尚早だよ。
347 名前:308 mailto:sage [2007/08/07(火) 04:01:15 ] >>345 なんかみんなの話聞いてたら確かに自分は早すぎるなと思ったわ・・・_| ̄|○ とりあえず今日はもう一回インストールしてみて寝ます。ありがとうございました。
348 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 04:03:34 ] >>347 インストールの途中で出てくる説明はよく読んでね 特にインストール先のフォルダを指定するところがあるだろうからそこはメモしておくといい
349 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 04:03:45 ] >>347 今みたいに、Java を勉強する過程で PC についての知識を深めるという荒業もある じっくりやれば良いと思うぜー
350 名前:308 mailto:sage [2007/08/07(火) 04:16:29 ] >>349 >>348 ありがとうございます。まだ基本的な知識が抜けているので自分で勉強しながらROMしようと思います。 質問できるレベルに達したらまた顔をだそうと思います。
351 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 04:23:37 ] >>304 引数につけた final はメソッドを使う側からは見えないので、 完全にメソッドの実装側の都合となるためそれほど重要でない。 >全てに付けているとパラメータの部分が長くなってしまい見づらいといえば見づらいです。 ここ重要。使い捨てでない限り、ソースコードは人が読む文書。しかも、唯一完全な文書。 意図せず誤ってパラメータへの代入を防ぐメリットとのトレードオフだが、 それが一目で分からないような複雑なメソッドはむしろリファクタリングの対象と思われ。 不要派が多いんじゃないかな。自分も不要派
352 名前:351 mailto:sage [2007/08/07(火) 04:42:09 ] 補足。 引数に final をつけることにより、 ソースコードの読み手にその意図を伝える役割があるが、 そもそも、引数に代入を行うこと自体が混乱を招くことなので 通常やらない(むしろ、そのようなコードはリファクタリング対象)。 したがって、この意味でも、引数に final をつける意義は薄れている というのが、不要派のおいらの個人的意見
353 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 07:35:11 ] C++でもconstを引数に使うのはconst char *のようなケースだけだものね。
354 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 07:44:14 ] いやC++のconst参照渡しは中身を書き換えないところまで保障するから別だとおもうが……
355 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:09:04 ] char * const s といった使い方はまずしないということだろ。 javaでfinalにした場合はこの意味だから。
356 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:32:08 ] >>352 引数に代入行うと混乱するぐらい長いメソッド自体の方をリファクタリング対象にした方が良いような。 短いメソッドなら引数に代入されても大して混乱しないし。
357 名前:デフォルトの名無しさん [2007/08/07(火) 09:52:57 ] >>356 長いメソッド云々の前に引数に代入すんな、って話だと思う どっちも糞コードなのは間違いないが、長いメソッドは可読性が低いだけ、引数に再代入するってのはバグと言ってもいいだろう
358 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:04:10 ] Javaにもいい加減constとfriendクラスが欲しいです
359 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:16:01 ] >>357 なんで引数に代入しただけでバグになるんだ…… 変更前の引数の値を期待してるところが残ってるのに、引数変更しちゃうと バグの元になるってんならわからなくもないけど、短いメソッドなら修正容易だし。
360 名前:デフォルトの名無しさん [2007/08/07(火) 10:17:14 ] www.vipper.net/vip299169.jpg この中で削除して良い物は在りますか?
361 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:25:39 ] >>360 JRE が一つでもあればいいのなら、赤線の枠内は全部削除して良い。 J2RE5 が一つはあった方が良いなら、赤線の枠内は J2SE Runtime Environment 5.0 update11 残して全部削除。
362 名前:デフォルトの名無しさん [2007/08/07(火) 10:37:28 ] >>359 限りなくバグに近いだろう、例外の握りつぶしとかと同じレベル 極端な話、引数は自然にfinalでもいいだろうと思う
363 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:39:32 ] ついでに、6 の Update 2 があるんだから、 6 の Update 1 も削除していいんじゃない?
364 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:40:02 ] 理由も無しに「バグに近い」とか言われても。夏だなぁ、としか。
365 名前:デフォルトの名無しさん [2007/08/07(火) 10:50:36 ] 理由も解らないなんて夏だな
366 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:50:39 ] >>362 にとってはバグなんだろ そっとしといてやれ
367 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:59:07 ] どっちでもいいんだけど、そもそもバグの定義ってなんだ?
368 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:25:51 ] 質問よろしいでしょうか。 ある文字列をキーに検索を行うプログラムを作っています。 その文字列のキーをワイルドカード(一文字マッチは"?"で行います)でも使用できるようにしたいと思い、文字列を末尾から"?"に置換するメソッドを作りました。 String value = "AAAAA"; int len = value.length(); for (int i = 0; i < len; i++) { String s = exec(value, len, i); // 検索処理 } public String exec(String _s, int _len, int _i) throws Exception { StringBuffer sb = null; try { sb = new StringBuffer(_s.substring(0, _len - _i)); while (sb.length() < _len) { sb.append("?"); } return sb.toString(); } catch(Exception e) { throw e; } }
369 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:26:05 ] 自分の思った通りにならなくて駄々をこねる状態にさせるもの
370 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:27:55 ] これでAAAAA, AAAA?, AAA??, AA???, A????という文字列から検索を行えますが、 このメソッドを以下のような文字列を返すメソッドにしたいと思います。 パラメータが"ABC"なら、(2 ** 文字列長)回のループで以下の文字列を順番に返す。 1回目:ABC 2回目:AB? 3回目:A?C 4回目:A?? 5回目:?BC 6回目:?B? 7回目:??C 8回目:??? どなたかご教示頂けないでしょうか。
371 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:35:51 ] >>370 32文字以下に限るけど、 2^n 回ループで、iが媒介変数だとして、 「iのmビット目が立っていたらm文字目を?に置き換える」という処理を n回やればいいんでは。
372 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:12:42 ] buildSearchKey とかが良いと思うんだ
373 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:23:56 ] >>370 import java.math.BigInteger; import java.util.*; public class A implements Iterable<String> { private String s; public A(String s) { this.s = s; } public Iterator<String> iterator() { return new B(); } private class B implements Iterator<String> { private BigInteger i = BigInteger.ZERO; private final BigInteger m = BigInteger.valueOf(2).pow(s.length()); private final int len = s.length(); public boolean hasNext() { return i.compareTo(m) < 0; } public String next() { if (i.compareTo(m) >= 0) throw new NoSuchElementException(); StringBuilder sb = new StringBuilder(s); for (int j = 0; j < len; j++) if (i.testBit(j)) sb.setCharAt(len - j - 1, '?'); i = i.add(BigInteger.ONE); return sb.toString(); } public void remove() { throw new UnsupportedOperationException(); } } }
374 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:24:37 ] 使い方はこんな感じで import java.util.*; public class C { public static void main(String[] args) { Iterator<String> iterator = new A("ABCD").iterator(); while (iterator.hasNext()) { String s = iterator.next(); System.out.println(s);//本当はsを使って検索処理 } } }
375 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:28:05 ] 簡単に書くならこうでもいい for (String s : new A("ABCD")) System.out.println(s);
376 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:18:24 ] 引数への再代入は否定せんが仮引数名から (変数の役割が)意味が変わる再代入は反対だな。アレは書いた奴にしか読めん。 friend欲しいのは設計が悪い。 constはjavaでは無意味。
377 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:34:18 ] constっぽいものはJSR-308のサンプルにある @Readonlyが追加されたら近い事が出来るようになるかも?
378 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:44:21 ] >@Readonlyが追加されたら近い事が出来るようになるかも? generics組み合わせたりすると型名がやたら長くなるのはいただけないけど、 コーディングミスを考えるとやむを得ないか……
379 名前:368, 370 mailto:sage [2007/08/07(火) 18:02:05 ] >ご回答下さった各位様 ありがとうございます。 少々違った形での実装となりそうですが、無事に進められそうです。 // 検索キーの桁数を考慮しないと酷い性能に……orz
380 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 18:09:40 ] なんかよくわからんが、元の検索キーから正規表現を構築してそれで検索した方が簡単じゃない?
381 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 19:42:29 ] 集計やイテレータを担う変数など、変化することが前提であるもの以外は、 引数を含むローカル変数は基本的に再代入禁止にした方がよいし、そうすることが可能。 外科手術に例えると、高度な手術は可能な限り無菌状態を保つことで初めて可能になる と、どこかのお偉いさんが言ってたヨ また、このリファクタリングは、他のリファクタリングを行う際の前処理にもなる場合もある。 例えば、ローカル変数の内容をメソッドから取り出すようにリファクタリングする際、 内容がメソッドの場所によって変わってたら困る。
382 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:34:27 ] 明示的にコンストラクターを起動している間、インスタンス・フィールド name は参照できません このエラーはどういうことでしょうか? 調べてもわからなかったです。すみません。
383 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 20:49:06 ] スーパークラスのコンストラクタが終わるまでのあいだ this は使えない。 例えば class A { A(int x){} } class B extends A { int x = 10; B() { super( this.x ); // ← これ } }
384 名前:デフォルトの名無しさん [2007/08/07(火) 21:34:25 ] 「世界でいちばん簡単」なe本なのに… 50ページ目のコンパイルで躓いてます。 javacがなんかおかしいみたい。何故だろう?
385 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 21:35:20 ] そんな本もってないからわからない。 くわしく
386 名前:デフォルトの名無しさん [2007/08/07(火) 21:40:22 ] 最初の「プログラミングしてみる」 という項目で //MyJava class MyJava{ public static void main(String args[]) { System.out.println("My Java Program"); } } と、テキストで打ちました。 で、コンパイルするんですが
387 名前:デフォルトの名無しさん [2007/08/07(火) 21:45:49 ] コマンドプロンプトで 「cd c:\MyJava」 「dir」 「javac MyJava.java」 と打つと 「'javac'は、内部コマンドまたは外部コマンド、操作可能な プログラムまたはバッチファイルとして認識されていません」 と出てしまうのです。
388 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 21:52:13 ] JDK をインストールしているかどうか、 インストールしているならそのインストール先を確認して、 そのインストール先の bin フォルダを環境変数 PATH に追加する。 ・・・その手の設定方法って本に載ってない?
389 名前:デフォルトの名無しさん [2007/08/07(火) 21:54:41 ] >>388 様、ありがとうございます。 最初に、JDKのインストールと、PATHの設定が載ってました。 それは本の通りに進んでいたのですが…
390 名前:デフォルトの名無しさん [2007/08/07(火) 21:56:13 ] 質問させて下さい。 int型のデータ「0xC01A」からString型のデータ"\uC01A"に 変換したいのですが、どのようなやり方がありますでしょうか?
391 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 21:59:19 ] >>389 コマンドプロンプトで PATH って打って、 JDK の bin フォルダがちゃんと追加されているかどうか確認する。 エクスプローラーでマイコンピュータから C: → Program Files → ... ってたどっていって、 本当にそのフォルダが存在していて中に javac があるかどうか確認する。
392 名前:デフォルトの名無しさん [2007/08/07(火) 22:00:02 ] >>391 様、ありがとうございます。 早速やってみます。
393 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:03:02 ] >>390 int x = 0xc01a; String s = "" + (char)x; ""+ ってのがなんかイヤだったら、面倒いけど String s = new String(new char[]{ (char)x });
394 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:04:27 ] >>389 ttp://www.shuwasystem.co.jp/books/7980/0533-9/0533-9.html 正誤表出ているが、パスの設定を1.4のデフォルトでやったんだろう
395 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:21:49 ] >>390 String str = Integer.toString(0xC01A);
396 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:24:52 ] すまん、間違えた String str = Character.toString((char)0xC01A); だな
397 名前:デフォルトの名無しさん [2007/08/07(火) 22:27:56 ] >>391 様 C:\MyJava>path PATH=C:WINDOWS\system32;C:WINDOWS;C:\WINDOWS\system32\Wbem;C: \Program Files\pcbNavi\bin;C:\Program Files\Fujitsu\sa\dll; c:\j2sdk_1.4.1_01\bin と表示されました。 C: → Program Files →Java→の中にはjavacは無く、 C: → j2sdk1.4.1 01 →bin→javacとありました。 何か間違ったのでしょうか? >>394 様、ありがとうございます。 1.4.1 01を選んでダウンロードしたのですが…自信ないです。
398 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:31:06 ] アンダーバーの有無をよく確認してみて。 PATH の中の j2sdk_1.4.1_01 実は j2sdk1.4.1_01 が正しいんじゃない?
399 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:32:41 ] >>397 c:\j2sdk_1.4.1_01\bin\javac -version ってコマンドプロンプトで打ち込んでみて
400 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:35:39 ] どうでもいいが、pathに設定してもろくな事ないと思うが・・・
401 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:39:51 ] >>390 new String(new int[] { 0xC01A }, 0, 1)
402 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:40:39 ] >>390 String s = "\\u"+ String.format("%x", 0xC01A).toUpperCase();
403 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:43:43 ] それなんか違うような・・・ ところで toUpperCase するなら %X でいいんじゃない?
404 名前:デフォルトの名無しさん [2007/08/07(火) 22:52:02 ] >>398 様、ありがとうございます。 j2sdk1.4.1_01 では通りませんでした。 >>399 様、やってみます。
405 名前:デフォルトの名無しさん [2007/08/07(火) 22:53:54 ] >>399 様、「指定されたパスが見つかりません」となりました。
406 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 22:57:53 ] >>397 には javac のあるフォルダ名が j2sdk1.4.1 01 って書いてあるけど、1.4.1 と 01 の間は空白? そうだったら PATH もそのように 一字一句同じ名前を入れてください
407 名前:デフォルトの名無しさん [2007/08/07(火) 23:01:41 ] >>406 様、すみません。_ありました。ここでの打ち間違いでした。
408 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:07:13 ] じゃあ、 >>397 の PATH には ...fujitsu\sa\dll; と c:\j2sdk... の間に改行が入ってるように見えるけど、 本当に改行やら無駄な空白が入っているのなら、取り除いてみてください。
409 名前:デフォルトの名無しさん [2007/08/07(火) 23:18:09 ] >>408 様、ありがとうございます。 もう一度やってみます。
410 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:25:49 ] >>405 エスパーしてみる DドライブにJDK入っているとかじゃない? エクスプローラーからjavac.exeを選んで、コマンドプロンプトにドラック&ドロップしてみてくれ そこで表示されたパスをここにココにコピる
411 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:27:34 ] >>397 c:\j2sdk_1.4.1_01\bin 志村、sdkの後ろに_入ってるぞ キーボードで入力するんじゃなくて、パスはコピー&ペースト汁
412 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:53:39 ] >>409 エクスプローラでアドレスバーを表示するようにしてないの?
413 名前:デフォルトの名無しさん [2007/08/08(水) 01:05:36 ] 皆様、ありがとうございました。 アンインストールしてもう一回始めからやり直してました。 そのおかげか、ソースコードを書き直したお陰か(本の文書の方では 『//MyJava』となってましたが、実際の画面を写した写真では『//MyJava.java』と) PATHの方も、本を見るのではなく、>>411 様の通りにコピペをしました。 何とか前進できました。
414 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:09:45 ] まずはWindowsの使い方から始めるべきだな
415 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:16:57 ] >>413 そんな違いよく見つけたね でもコメントの違いはプログラムの動作に影響しない
416 名前:デフォルトの名無しさん [2007/08/08(水) 01:17:41 ] >>414 様、ありがとうございます。 頑張ります。 PC自体初心者なのに、訓練学校に入ってしまい今、毎日が勉強です。 今年中にブロンズとSJC-Aを取得するように言われていて… 努力しかないですね。
417 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:17:42 ] 最近はコマンドプロンプトもbatもいらないからな
418 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:54:40 ] >>384 かわいそうだが、その本は地雷だから。 きみはもうしばらくしたら 本の通りにやったのですがエラーが出てしまいます。 精度が落ちている可能性 検出値: double 期待値: float a = 2.0; エラー 1個 という質問をするであろう。 pc11.2ch.net/test/read.cgi/tech/1180419689/354-364
419 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 07:12:47 ] 独習が良いと聞き買ったが分厚いので持ち運びに不便であまり読まないwwwwwww