- 1 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 11:06:04.02 ID:ijSgjgrG.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ Part.6 mevius.2ch.net/test/read.cgi/tech/1513783473/
- 415 名前:デフォルトの名無しさん [2018/04/25(水) 17:34:11.55 ID:vN7xx/wG.net]
- 人気グループ「TOKIO」の山口達也メンバーが、自宅マンションの部屋で女子高校生に無理やりキスをするなどの行為をしたとして、警視庁は強制わいせつの疑いで書類送検しました。
全文は以下 https://www3.nhk.or.jp/news/html/20180425/k10011417181000.html
- 416 名前:デフォルトの名無しさん [2018/04/25(水) 18:42:45.48 ID:F5XB7b+1.net]
- >>398
そう。そしてブラックホールに飲み込まれる。
- 417 名前:デフォルトの名無しさん [2018/04/25(水) 18:54:49.29 ID:F5XB7b+1.net]
- >>397
そう。どこかで例外を処理する必要がある。 そのメソッドの中でやる必要がなく、呼び出した側に任せたい場合はメソッドにthrows付けてその例外を並べておく。
- 418 名前:397 mailto:sage [2018/04/25(水) 19:30:28.04 ID:fwgr11+u.net]
- >>398
>>402 分かりました ありがとうございました
- 419 名前:デフォルトの名無しさん [2018/04/25(水) 20:44:16.06 ID:3+niHUT+.net]
- 【マイトLーヤとPS4】 FFとDQの最新作、VR開発は危険、プレーヤーの日常感覚を損なうおそれ
rosie.5ch.net/test/read.cgi/liveplus/1524621704/l50
- 420 名前:デフォルトの名無しさん mailto:sage [2018/04/25(水) 23:17:47.60 ID:2C7nhQLD.net]
- 内容が陳腐で今まで読んでなかったスッキリ入門
- 421 名前:実践編を
この前ウンコしながら読んでたんだけど listのremoveって内部でobjectのequal読んでるって初めて知ったわ 仕事でremove使ってるときに何かうまく削除できねーなぁって言うのが 何回かあったような気がしたから納得したわ こんな本でも役に立つとは思わんかった [] - [ここ壊れてます]
- 422 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 01:41:03.96 ID:rfIza21B.net]
- APIリファレンスに書いてなかったか?
- 423 名前:デフォルトの名無しさん mailto:age [2018/04/26(木) 08:48:52.90 ID:2wH2d+Gx.net]
- JK的にそれしかありえんだろ
- 424 名前:デフォルトの名無しさん [2018/04/26(木) 09:39:16.37 ID:M6xSFYLV.net]
- JK的?
- 425 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 11:22:14.87 ID:ug01vewW.net]
- メンバーか
- 426 名前:デフォルトの名無しさん [2018/04/26(木) 11:46:33.29 ID:zm91irPY.net]
- 35歳の間違いだろ
- 427 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 14:20:36.08 ID:LZqqVlEY.net]
- 共同ツール 1
https://seleck.cc/685 https://trello.com/ ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど Trello Chrome拡張機能 elegant ttp://www.kikakulabo.com/service-eft/ trelloのオープンソースあり 共同ツール 2 https://www.google.com/intl/ja_jp/sheets/about/ 共同ツール 3 https://slack.com/intl/ja-jp https://www.dropbox.com/ja/ https://bitbucket.org/ https://ja.atlassian.com/software/sourcetree https://sketchapp.com/extensions/plugins/ ttp://photoshopvip.net/103903 ttps://goodpatch.com/blog/sketch-plugins/
- 428 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 01:23:44.80 ID:jNhgPBcU.net]
- >>410
ここで出すな
- 429 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 10:56:04.65 ID:3DjLi910.net]
- アレルギー発症するしな
- 430 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 23:14:20.81 ID:RZcX+AlMt]
- JAVAというよりプログラミングの設計の話なのかもしれないのですが,相談させてください.
例えばクラスで表(テーブル)を書くクラスを作るとして,使う側は表の定義情報をそのクラスに setterで渡すとします.
渡された定義情報はクラス内部の多くのメソッドで使われるのですが,この場合クラス内の 各メソッドは,引数に定義情報を取った方が良いのか,メソッド内部でgetterを使って取得 するのが良いのか迷っています.(各メソッドは使用側からは呼ばれない予定です.)
細かいかもしれませんが,皆さんならどうするかアドバイスいただけないでしょうか?
- 431 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 06:41:39.46 ID:vbqExxbx.net]
- int[] dt=new int[100];
これはやはり空白入れて int[] dt = new int[100]; と書くのが一般的なんですかね?
- 432 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 08:57:33.33 ID:jd++Ii8/.net]
- 好きにしたらええ
- 433 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 12:00:36.28 ID:yhgdtgpW.net]
- >>415
なにそのアホみたいな質問 どっちが一般的か、本当にわからなくて聞いてる? 前者の方が一般的もしくは半々ぐらいである可能性もあると思って聞いてんの?
- 434 名前:デフォルトの名無しさん [2018/05/03(木) 20:35:04.46 ID:BzzsX7PA.net]
- >>415
ワシは後者で書く それで話は終わり >>417 まあまあ こんなカス掲示板で マジにならんでもよろしい ワシも多少はそう思ってる
- 435 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 20:44:54.98 ID:x/CfAno2.net]
- コンマの後ろは空白入れる派?
(1, 2, 3)
- 436 名前:デフォルトの名無しさん [2018/05/04(金) 03:59:25.88 ID:id/9DuDj.net]
- マンコの後ろの穴にチンコ入れる派
- 437 名前:デフォルトの名無しさん [2018/05/04(金) 03:59:46.06 ID:id/9DuDj.net]
- マンコの後ろの穴にチンコ入れる派
- 438 名前:デフォルトの名無しさん [2018/05/04(金) 04:06:53.55 ID:WkIAkx0r.net]
- マンコの後ろの穴にチンコ入れる派
( * )←ω
- 439 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 06:18:21.42 ID:HEa1U9rI.net]
-
- 440 名前:数値リテラルとかビット〜みたいな細かい数字の話が基礎知識として出てきてとりあえず読み飛ばしてるんですが、やはり理解するのは必須なんでしょうか []
- [ここ壊れてます]
- 441 名前:デフォルトの名無しさん [2018/05/04(金) 21:01:19.41 ID:sij7cbOA.net]
- 必須だと思うよ。
そういう基礎的部分がわからないままではプログラム作れないだろう。
- 442 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 00:41:00.51 ID:4BKiiZ7N.net]
- やはりそうですか……
ありがとうございます
- 443 名前:デフォルトの名無しさん [2018/05/05(土) 02:57:52.54 ID:ia6t0Ogc.net]
- Javaの基礎的な部分で混乱しそうな所は文字列定数かな。特にCやC++に慣れた人がダブルクォーテーションで括られてるだけでそれがStringのインスタンスであることを理解せずに String s = new String(”abc”); みたいな無駄な書き方をしてしまったりする。
- 444 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 10:46:34.95 ID:7fXWffH9.net]
- >>426
そんなところで混乱する奴なんていないよ
- 445 名前:デフォルトの名無しさん [2018/05/05(土) 15:19:26.83 ID:ia6t0Ogc.net]
- そうかなあ?前はよく見たけどなあ。
- 446 名前:デフォルトの名無しさん [2018/05/05(土) 16:41:30.46 ID:FiSjDjb0.net]
- 未だにequalsと==のバグ見かける
C#といったりきたりしてるとうっかりやるから そろそろ言語仕様変えてほしい
- 447 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 17:06:56.84 ID:ZO4AhgIr.net]
- めっちゃ分かる
- 448 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 17:19:52.83 ID:HbTEHU9f.net]
- なまじ似てるのが悪い。
- 449 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 19:43:03.62 ID:6mpGGgHw.net]
- https://pastebin.com/Ls4mpSCv
本に載っていた上のコードの11行目で、byte型にキャストを行っているのですが、 その理由が分かりません リファレンスで調べると、FileOutputStreamのwrite()メソッドは、byte[]か intしか(第1)引数に取らないと書いてあります どなたかこのキャストの理由が分かる方がいましたら、教えてもらえませんで しょうか?
- 450 名前:デフォルトの名無しさん [2018/05/05(土) 19:55:03.40 ID:fekIGidl.net]
- >>432
理由はない、完全に無駄なキャストだしflushも呼ばなくていい
- 451 名前:デフォルトの名無しさん [2018/05/05(土) 20:08:07.19 ID:ia6t0Ogc.net]
- それだけでなくなんか無駄があるな。9〜13行目はこれでいいよなあ。
int data; while ((data = is.read()) != -1) os.write(data);
- 452 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 20:10:31.11 ID:ia6t0Ogc.net]
- あ、でも、何れにしてもバッファリングしてないから遅くなるかな。
BufferedInputStream() や BufferedOutputStream() を通すことをお勧めする。
- 453 名前:431 mailto:sage [2018/05/05(土) 22:47:05.28 ID:6mpGGgHw.net]
- 答えてくれた方、ありがとうございます
>>433 flush()を呼ばないと書き込まれずにデータが残る恐れがある、と本には 書いてあるんですが… >>434 >>435 分かりました
- 454 名前:デフォルトの名無しさん [2018/05/05(土) 22:50:45.34 ID:fekIGidl.net]
- >>436
どこの本じゃおらあああ!!! 説教してやるわ! >>434さんお願いします
- 455 名前:431 mailto:sage [2018/05/05(土) 23:14:03.22 ID:6mpGGgHw.net]
- >>437
有名な、「スッキリわかるJava入門 実践編」です 該当箇所(p252)を引用します 「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある からです。 実は、write()メソッドはデータの書き込みを要求するだけの命令であり、 呼び出したらすぐにファイルにデータが書き込まれるとは限りません。 これはファイルの読み書きを高速化するためのバッファというしくみによって、 後でまとめて書き込み処理がされることがあるためです。…」
- 456 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 23:14:53.02 ID:ukbnMY+E.net]
- 普通はcloseの内部でflushが呼ばれるか同等の処理がされるから、
きちんとcloseするプログラムの場合は明示的なflushは不要。
- 457 名前:431 mailto:sage [2018/05/05(土) 23:44:43.67 ID:6mpGGgHw.net]
- >>439
そうなんですか? ありがとうございました
- 458 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 23:56:03.71 ID:95YSYNlN.net]
- flush
- 459 名前:していないと、電源断・強制終了時に、書き込まれない
何秒おきに、flushされるかなどの設定は、 Java と言うよりは、OS・外部装置の挙動 [] - [ここ壊れてます]
- 460 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 00:07:10.53 ID:GsL2vTC2.net]
- また35歳来てるのかよ
- 461 名前:デフォルトの名無しさん [2018/05/06(日) 00:14:34.04 ID:iIP+eAYQ.net]
- flush使うのはログとかで途中経過を確実に見たいときだな
- 462 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 04:49:26.60 ID:Bse1bLkg.net]
- flush() があった方が良いのは BufferedOutputStream や BufferedWriter のインスタンス経由で
出力していて尚且つ close() するよりも前に今まで出力した分がバッファから全て出力されて 欲しい場合だろう。そうでないのなら普通は無意味、というか、Bufferedでないクラスなら多分 何もしていない。(バッファがないなら flush() も何もないからね)。 >>432のプログラムの場合 FileOutputStream を作っているだけなのでバッファリングはされて おらず write() した直後に書かれている筈だ。更に終わったらすぐに close() するだけなので たとえバッファリングされていたとしても close() 前に flush() をする必要はない。 ただ問題は1バイトづつ読んだり書いたりするようになっていて非常に効率が悪いことだ。 入出力は両方ともこんな風にバッファリングされるようにした方が良い。 InputStream is = new BufferedInputStream(url.openStream()); OutputStream os = new BufferedOutputStream(new FileOutputStream("dj4.ico")); 更に読み書きする部分も以下のように自分でバッファ作ってまとめて読んでまとめて書くようにした方が良い。 (1000である必要はない。もっと大きくても良い)。 byte[] buf = new byte[1000]; int n; while ((n = is.read(buf)) > 0) os.write(buf, 0, n); こうした時の速度差は何Mバイトとか何Gバイトもの大量のデータを扱うと分かると思う。 (但しJavaコンパイラやJITの最適化、およびJavaVMやOSやハードウェアの進歩により 将来的にはどう書いても速く動くようになる可能性はある)。
- 463 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 08:27:00.47 ID:6iNSfcwx.net]
- FileOutputStreamはJava側ではバッファリングしていないが
OS側のファイルシステムがバッファリングしてる場合もあるので、 flush呼び出しで明示的にディスク書き出しを指示できるので完全に無意味って事はない。 ただしディスク書き出しを指示するっても指示された側が直ちに実行するとは限らない。 典型的にはflushの呼び出しが終わった時には書き出しが終わっている事が期待されるが 実際にはディスクアクセスの優先順位待ちとかでflushの呼び出しが終わった時点でも ディスクへの書き出しが終わってないとかそーゆーケースはある。
- 464 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 11:03:17.43 ID:6iNSfcwx.net]
- FileOutputStreamだとflush上書きしてねーから>>445はウソだったわ。
- 465 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 16:44:24.01 ID:Bse1bLkg.net]
- Java 側で FileOutputStream を使っていても OS 側で密かにバッファリングされていた場合は
Java の方からではどうすることもできないかもね。 ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが 普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write() 直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると ディスクに書いてない分の内容は失われる。 これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを 実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。 大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系 OSでも違う場合もあり得るし特殊なハードウェアの
- 466 名前:ディスクの場合は違うかも知れない。
などという細かい事まで考えないといけないぐらい高度な要求があることは滅多にないだろうが、 どうしてもそこまで考えて作らねばならない場合は本当に Java だけで実現できるのか、または Javaで作ることは適切かを事前によく検討した方が良いと思う。 [] - [ここ壊れてます]
- 467 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 23:24:51.40 ID:LrvTqzkb.net]
- Linux では、アイドル時間を利用して、5秒毎にデバイスに書き込んでいるけど、
SSD の寿命対策で、書き込み回数を減らしたい場合に、 15秒毎とかに設定することもある またデバイスも、バッファ・キャッシュを持つから、 バッファに書き込んだ時点で、OS に書き込み完了を知らせるかも知れない。 ここで電源断すると、デバイスに書き込まれない まあ、デバイスの設定は、よく知らないけど
- 468 名前:デフォルトの名無しさん mailto:sage [2018/05/07(月) 11:28:57.25 ID:sRlF3JnI.net]
- 作成するアプリの規模にもよるかもしれませんが、
非同期処理を安全に書くために調べたら数年前まではRxJavaが流行りそうって記事が多いけども、 今はAsyncTaskとかで十分なのかな?
- 469 名前:デフォルトの名無しさん [2018/05/10(木) 20:09:13.57 ID:2zvsPgeN.net]
- Javaについてこの理解であってますか?
1 ソースコードは互換性がありどのJDKでもコンパイルできる 2 バイトコードは互換性がありどのJVMでも実行できる 3 JREやJDKはJVMとクラスライブラリを含む
- 470 名前:デフォルトの名無しさん [2018/05/10(木) 20:17:53.23 ID:+tTPUtlU.net]
- >>450
教科書読めやハゲ
- 471 名前:デフォルトの名無しさん [2018/05/10(木) 21:02:09.83 ID:CK5Copcn.net]
- >>450
大雑把にはそれでいいのだが標準ではないライブラリを追加して作られたプログラムはそれの無い環境では当然コンパイルエラーになる。 コンパイル済みのクラスファイルやそれを入れたjarファイルの場合は足りないライブラリのせいで動かない。
- 472 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 08:49:44.16 ID:CudJysns.net]
- >>452
そんな当たり前のことはどうでもいいから、>>450が正しいか間違ってるか、大雑把にではなく正確に答えろや 断言できる知識がないからって「大雑把に」とか言って保険かけんな
- 473 名前:デフォルトの名無しさん mailto:age [2018/05/11(金) 15:40:03.41 ID:iIfcglOt.net]
- やかましいわ!
- 474 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 15:45:41.92 ID:Z82lyl/Y.net]
- 1. 完全な互換性はないので同じソースコードが全てのJDKで必ずコンパイルできるとは限らない。
2. 完全な互換性はないので同じバイトコードが全てのJVMで必ず実行できるとは限らない。
- 475 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 16:21:23.17 ID:UhEMsKag.net]
- >>453
当たり前ってわかってんなら>>450がどうかもわかるんじゃねーの?
- 476 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 20:24:20.11 ID:Cbg+X5+f.net]
- Classクラスが持つメソッドについて質問です。
メソッドを取得するgetDeclaredMethod()やコンストラクタを取得する getDeclaredConstructor()の引数に、Class<?>型が含まれているのですが、 何故この型なのでしょうか? intやdoubleなどの基本型を取る場合もあると思うのですが…。
- 477 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 20:59:28.55 ID:PddvfNsl.net]
- 基本型を指定したい場合、ラッパークラスの.TYPEを使うんだ
intの場合Integer.TYPEとかそういう感じで
- 478 名前:デフォルトの名無しさん [2018/05/11(金) 23:49:17.69 ID:BkhZdaXW.net]
- >>453
わかった。じゃあ厳密に答えよう。こうだ。 1 × 2 × 3 ○
- 479 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 00:44:10.56 ID:zFimtC1H.net]
- >>457です。
>>458 ありがとうございます。 本によると、int.classとか見慣れない表記をしているのですが、 これでもよいのでしょうか?
- 480 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 10:16:25.78 ID:UEBc/Ia0.net]
- >>460
>>458がぼけてただけだわ、int.classでよす https://ideone.com/Xc37lP
- 481 名前:456 mailto:sage [2018/05/12(土) 23:06:04.87 ID:zFimtC1H.net]
- >>461
ありがとうございます。 int.classやlong.classなど、
- 482 名前:基本型名.classは何型になるのですか? []
- [ここ壊れてます]
- 483 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:17:09.11 ID:VaYQl2tk.net]
- レイアウトについて質問させてください。
(1) Container contain = getContentPane() ; contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS)); contain.add(new JButton("ボタン1")) ; contain.add(new JButton("ボタン2")) ; (2) Container contain = getContentPane() ; contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS)); contain.add(new JButton("ボタン1")) ; JPanel p = new JPanel() ; p.add(new JButton("ボタン2")) ; contain.add(p) ; (1)ではボタンが二つとも左端に表示されるのですが、(2)は両方とも真ん中になります。 なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか?
- 484 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:36:34.00 ID:ZtGqqYsK.net]
- 見たことない書き方だな
普通にレイアウト書いたらあかんの? 静的でも動的でもいいけど
- 485 名前:デフォルトの名無しさん [2018/05/13(日) 21:31:40.32 ID:v233urWy.net]
- >>463
JButtonは、alignmentXのデフォがLEFT_ALIGNMENT JPanelは、alignmentXのデフォがCENTER_ALIGNMENT JPanelのalignmentXにLEFT_ALIGNMENTを設定したら JButtonが左に寄った BoxLayout内のコンポネントは独立して配置されるわけじゃないみたい わしにはよくわからん
- 486 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:14:48.90 ID:VaYQl2tk.net]
- >>465
ありがとうございます。でもそれだとボタン1は左に寄るんですけど、ボタン2はまだ真ん中なんですよね。 でも p を boxlayout.X_ASIS にしたらボタン2も左に寄りました。 でもなぜそうなるのか、何が何だか分からない。 Container contain = getContentPane() ; contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS)); contain.add(new JButton("ボタン1")) ; JPanel p = new JPanel() ; p.setAlignmentX(Component.LEFT_ALIGNMENT); p.setLayout(new BoxLayout(p,BoxLayout.X_AXIS)); p.add(new JButton("ボタン2")) ; contain.add(p) ; あと p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS)); p.setLayout(new FlowLayout(FlowLayout.RIGHT)) ; p.setLayout(new FlowLayout(FlowLayout.CENTER)) ; p.setLayout(new FlowLayout(FlowLayout.LEFT)) ; とか、あとボタンをさらに加えたり、色々試してみるんですが、よく分からない。
- 487 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 18:37:33.48 ID:IdPDIHX7.net]
- 正規表現について質問なんですけど、
String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ; ここから会社名と住所を取り出したいんですけど、 Pattern pattern1 = Pattern.compile("[(] .* [)]"); これだと ( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) が取り出されるんですけど、何が悪いんでしょうか?( 多久比禮志神社 )と、( 富山県富山市塩689 ) を別々に取り出したいんです。
- 488 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 19:13:56.71 ID:JYHluoOt.net]
- [( ].+?[)]
- 489 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 19:16:56.51 ID:18kCbkVn.net]
- >>467
最長一致とかでググれ。 Matcher m1 = Pattern.compile("a.*b").matcher("ababab"); Matcher m2 = Pattern.compile("a.*?b").matcher("ababab"); System.out.println(m1.find() + " " + m1.group()); System.out.println(m2.find() + " " + m2.group());
- 490 名前:デフォルトの名無しさん [2018/05/15(火) 20:52:24.90 ID:r6+CqG6i.net]
- >>467
こうかねえ \\((.*?)\\)\\((.*?)\\)
- 491 名前:デフォルトの名無しさん [2018/05/15(火) 20:53:43.49 ID:r6+CqG6i.net]
- あ、まつがえた
こうだな \\((.*?)\\).*?\\((.*?)\\)
- 492 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 20:55:15.80 ID:JYHluoOt.net]
- 俺のレスが見えないのか馬鹿ども
無駄な駄レスをまき散らすなアホ
- 493 名前:デフォルトの名無しさん [2018/05/15(火) 21:36:26.05 ID:4HBr8Nk+.net]
- \\(([^)]+)\\)
- 494 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:08:48.50 ID:JYHluoOt.net]
- ∧∧
(д´*) (⊃⌒*⌒⊂) /_ノωヽ_)
- 495 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:09:20.54 ID:JYHluoOt.net]
- THE 性器表現
- 496 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:20:36.07 ID:IdPDIHX7.net]
- 皆さんほんとに感謝です。最長一致、最短一致は自分で調べていて目にはしていたんですが、解説を読んでもよく分かりませんでした。
こういうコードになりました。 String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ; Pattern pattern1 = Pattern.compile("[(].*?[)]"); Matcher m1 = pattern1.matcher(str); String[] id = new String [2] ; for (int j = 0 ; j < 2 ; j++) { m1.find() ; id[j] = m1.group(0); System.out.println(id[j]); } 出力結果 ( 多久比禮志神社 ) ( 富山県富山市塩689 )
- 497 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:36:23.61 ID:JYHluoOt.net]
- お前さぁ
俺が一番最初に一番最短のまともな回答書いてやってるのに なんで意味わからずアスタリスク使った方を選んでんだアホ これだから馬鹿はイラつくんだよな 説明読んで正規表現もわからんってどんな馬鹿だよ・・ お前はもう二度と書き込むなアホ
- 498 名前:デフォルトの名無しさん [2018/05/15(火) 22:40:19.77 ID:4HBr8Nk+.net]
- +は邪道でしょ
- 499 名前:デフォルトの名無しさん [2018/05/15(火) 22:40:58.19 ID:4HBr8Nk+.net]
- >>474
でもアスタリスク使ってるわけだし
- 500 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:54:38.02 ID:IdPDIHX7.net]
- >>477
申し訳ありません。ところで、あなたの [( ].+?[)] を使うと、 会社名( 多久比禮志神社 ) ( 富山県富山市塩689 ) と出力されます。 [(].+?[)] にすると ( 多久比禮志神社 ) ( 富山県富山市塩689 ) になります。なんかまた謎が増えてしまって。
- 501 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:59:41.77 ID:JYHluoOt.net]
- >あなたの [( ].+?[)] を使うと、
おめーが使ってる最初の括弧が2バイト文字だからそのまま使ってるだけなんだが 舐めてんのかお前?
- 502 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 23:01:13.76 ID:JYHluoOt.net]
- あ、半角スペース入ってただけだわすまんな
っつーか揚げ足取って挑発してんのかおまえ? あ?
- 503 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 23:09:47.97 ID:IdPDIHX7.net]
- >>482
でも半角スペースが入ったら、「会社名」が何で含まれるんでしょうか?揚げ足を取りたいわけではなくて、ほんとに分からない。
- 504 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 23:30:36.21 ID:IdPDIHX7.net]
- >>482
申し訳ありません。文字列が違ってました。 "2. 会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探・・・”でした。最初の「2」の後にスペースが入ってました。 重ねて謝罪します。ほんとに申し訳ありませんでした。
- 505 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 23:43:31.90 ID:1bAdW6Zs.net]
- 会社名や住所に()が含まれるときここに出た正規表現じゃ全部駄目
再帰的パターン使え
- 506 名前:デフォルトの名無しさん [2018/05/16(水) 01:40:48.31 ID:Ncn1UiZB.net]
- だめだけど、そういう仕様にしなければいけないという指定はない。
- 507 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 04:29:15.58 ID:OVunt3L8.net]
- * は、0回以上
+ は、0回以上 ? は、0 か1回 {m} は、m回 {m,} は、m回以上 {,n} は、n回以下 {m,n} は、m回以上、n回以下 上は最長一致 (greedy)。 最短一致にするには、? を付ける (reluctant) *?, +?, ??, {m,}?, {,n}?, {m,n}? 例えば、<div>あ</div> で、 <.*> なら最長一致で、<div>あ</div> <.*?> なら最短一致で、<div>
- 508 名前:486 mailto:sage [2018/05/16(水) 04:37:57.06 ID:OVunt3L8.net]
- >>487
修正 >+ は、0回以上 + は、1回以上
- 509 名前:486 mailto:sage [2018/05/16(水) 04:58:36.97 ID:OVunt3L8.net]
- 修正
本当は最短一致なら、<[^>]*> 先頭が< で、> 以外の文字が、0以上あって、末尾が>
- 510 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 22:17:26.76 ID:RliGnokV.net]
- なんで \\( と書かずに [(] と書く?
まあこの場合同じ事だけどさ。
- 511 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 00:43:44.49 ID:yxB+aPaP.net]
- まだ前の人の質問が完結してないみたいですが、質問させて頂いていいでしょうか?
JUnitというツールを使いこなせれば、アサーションは覚えなくても問題無い でしょうか?
- 512 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 04:45:13.62 ID:tkjoiiDy.net]
- お前の頭に問題がある
- 513 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 10:22:35.65 ID:CDjWE0Pi.net]
- これはよい炎上学習法
- 514 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 16:58:29.13 ID:syGPQ258.net]
- boolean hoge1=false,hoge2=false;
if(hoge1 == true && hoge2 == true){} こうやって書くともっとシンプルにって言われるんだけども、 どうやってシンプルに書くのでしょう? if(hoge1 && hoge2 ){} だと、両方falseでも条件を満たしますよね?
- 515 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 17:17:48.97 ID:q0eVLi5m.net]
- >>492
>>493 意味分からんレスするなよ…
|

|