Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.6
http://mevius.2ch.net/test/read.cgi/tech/1513783473/
探検
Java入門・初心者質問スレ Part.7
■ このスレッドは過去ログ倉庫に格納されています
2018/01/10(水) 11:06:04.02ID:ijSgjgrG
437431
2018/05/05(土) 23:14:03.22ID:6mpGGgHw >>436
有名な、「スッキリわかるJava入門 実践編」です
該当箇所(p252)を引用します
「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある
からです。
実は、write()メソッドはデータの書き込みを要求するだけの命令であり、
呼び出したらすぐにファイルにデータが書き込まれるとは限りません。
これはファイルの読み書きを高速化するためのバッファというしくみによって、
後でまとめて書き込み処理がされることがあるためです。…」
有名な、「スッキリわかるJava入門 実践編」です
該当箇所(p252)を引用します
「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある
からです。
実は、write()メソッドはデータの書き込みを要求するだけの命令であり、
呼び出したらすぐにファイルにデータが書き込まれるとは限りません。
これはファイルの読み書きを高速化するためのバッファというしくみによって、
後でまとめて書き込み処理がされることがあるためです。…」
438デフォルトの名無しさん
2018/05/05(土) 23:14:53.02ID:ukbnMY+E 普通はcloseの内部でflushが呼ばれるか同等の処理がされるから、
きちんとcloseするプログラムの場合は明示的なflushは不要。
きちんとcloseするプログラムの場合は明示的なflushは不要。
440デフォルトの名無しさん
2018/05/05(土) 23:56:03.71ID:95YSYNlN flush していないと、電源断・強制終了時に、書き込まれない
何秒おきに、flushされるかなどの設定は、
Java と言うよりは、OS・外部装置の挙動
何秒おきに、flushされるかなどの設定は、
Java と言うよりは、OS・外部装置の挙動
441デフォルトの名無しさん
2018/05/06(日) 00:07:10.53ID:GsL2vTC2 また35歳来てるのかよ
442デフォルトの名無しさん
2018/05/06(日) 00:14:34.04ID:iIP+eAYQ flush使うのはログとかで途中経過を確実に見たいときだな
443デフォルトの名無しさん
2018/05/06(日) 04:49:26.60ID:Bse1bLkg flush() があった方が良いのは BufferedOutputStream や BufferedWriter のインスタンス経由で
出力していて尚且つ close() するよりも前に今まで出力した分がバッファから全て出力されて
欲しい場合だろう。そうでないのなら普通は無意味、というか、Bufferedでないクラスなら多分
何もしていない。(バッファがないなら flush() も何もないからね)。
>>431のプログラムの場合 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やハードウェアの進歩により
将来的にはどう書いても速く動くようになる可能性はある)。
出力していて尚且つ close() するよりも前に今まで出力した分がバッファから全て出力されて
欲しい場合だろう。そうでないのなら普通は無意味、というか、Bufferedでないクラスなら多分
何もしていない。(バッファがないなら flush() も何もないからね)。
>>431のプログラムの場合 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やハードウェアの進歩により
将来的にはどう書いても速く動くようになる可能性はある)。
444デフォルトの名無しさん
2018/05/06(日) 08:27:00.47ID:6iNSfcwx FileOutputStreamはJava側ではバッファリングしていないが
OS側のファイルシステムがバッファリングしてる場合もあるので、
flush呼び出しで明示的にディスク書き出しを指示できるので完全に無意味って事はない。
ただしディスク書き出しを指示するっても指示された側が直ちに実行するとは限らない。
典型的にはflushの呼び出しが終わった時には書き出しが終わっている事が期待されるが
実際にはディスクアクセスの優先順位待ちとかでflushの呼び出しが終わった時点でも
ディスクへの書き出しが終わってないとかそーゆーケースはある。
OS側のファイルシステムがバッファリングしてる場合もあるので、
flush呼び出しで明示的にディスク書き出しを指示できるので完全に無意味って事はない。
ただしディスク書き出しを指示するっても指示された側が直ちに実行するとは限らない。
典型的にはflushの呼び出しが終わった時には書き出しが終わっている事が期待されるが
実際にはディスクアクセスの優先順位待ちとかでflushの呼び出しが終わった時点でも
ディスクへの書き出しが終わってないとかそーゆーケースはある。
445デフォルトの名無しさん
2018/05/06(日) 11:03:17.43ID:6iNSfcwx FileOutputStreamだとflush上書きしてねーから>>444はウソだったわ。
446デフォルトの名無しさん
2018/05/06(日) 16:44:24.01ID:Bse1bLkg Java 側で FileOutputStream を使っていても OS 側で密かにバッファリングされていた場合は
Java の方からではどうすることもできないかもね。
ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが
普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write()
直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると
あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると
ディスクに書いてない分の内容は失われる。
これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを
実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。
大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系
OSでも違う場合もあり得るし特殊なハードウェアのディスクの場合は違うかも知れない。
などという細かい事まで考えないといけないぐらい高度な要求があることは滅多にないだろうが、
どうしてもそこまで考えて作らねばならない場合は本当に Java だけで実現できるのか、または
Javaで作ることは適切かを事前によく検討した方が良いと思う。
Java の方からではどうすることもできないかもね。
ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが
普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write()
直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると
あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると
ディスクに書いてない分の内容は失われる。
これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを
実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。
大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系
OSでも違う場合もあり得るし特殊なハードウェアのディスクの場合は違うかも知れない。
などという細かい事まで考えないといけないぐらい高度な要求があることは滅多にないだろうが、
どうしてもそこまで考えて作らねばならない場合は本当に Java だけで実現できるのか、または
Javaで作ることは適切かを事前によく検討した方が良いと思う。
447デフォルトの名無しさん
2018/05/06(日) 23:24:51.40ID:LrvTqzkb Linux では、アイドル時間を利用して、5秒毎にデバイスに書き込んでいるけど、
SSD の寿命対策で、書き込み回数を減らしたい場合に、
15秒毎とかに設定することもある
またデバイスも、バッファ・キャッシュを持つから、
バッファに書き込んだ時点で、OS に書き込み完了を知らせるかも知れない。
ここで電源断すると、デバイスに書き込まれない
まあ、デバイスの設定は、よく知らないけど
SSD の寿命対策で、書き込み回数を減らしたい場合に、
15秒毎とかに設定することもある
またデバイスも、バッファ・キャッシュを持つから、
バッファに書き込んだ時点で、OS に書き込み完了を知らせるかも知れない。
ここで電源断すると、デバイスに書き込まれない
まあ、デバイスの設定は、よく知らないけど
448デフォルトの名無しさん
2018/05/07(月) 11:28:57.25ID:sRlF3JnI 作成するアプリの規模にもよるかもしれませんが、
非同期処理を安全に書くために調べたら数年前まではRxJavaが流行りそうって記事が多いけども、
今はAsyncTaskとかで十分なのかな?
非同期処理を安全に書くために調べたら数年前まではRxJavaが流行りそうって記事が多いけども、
今はAsyncTaskとかで十分なのかな?
449デフォルトの名無しさん
2018/05/10(木) 20:09:13.57ID:2zvsPgeN Javaについてこの理解であってますか?
1 ソースコードは互換性がありどのJDKでもコンパイルできる
2 バイトコードは互換性がありどのJVMでも実行できる
3 JREやJDKはJVMとクラスライブラリを含む
1 ソースコードは互換性がありどのJDKでもコンパイルできる
2 バイトコードは互換性がありどのJVMでも実行できる
3 JREやJDKはJVMとクラスライブラリを含む
450デフォルトの名無しさん
2018/05/10(木) 20:17:53.23ID:+tTPUtlU >>449
教科書読めやハゲ
教科書読めやハゲ
451デフォルトの名無しさん
2018/05/10(木) 21:02:09.83ID:CK5Copcn >>449
大雑把にはそれでいいのだが標準ではないライブラリを追加して作られたプログラムはそれの無い環境では当然コンパイルエラーになる。
コンパイル済みのクラスファイルやそれを入れたjarファイルの場合は足りないライブラリのせいで動かない。
大雑把にはそれでいいのだが標準ではないライブラリを追加して作られたプログラムはそれの無い環境では当然コンパイルエラーになる。
コンパイル済みのクラスファイルやそれを入れたjarファイルの場合は足りないライブラリのせいで動かない。
452デフォルトの名無しさん
2018/05/11(金) 08:49:44.16ID:CudJysns453デフォルトの名無しさん
2018/05/11(金) 15:40:03.41ID:iIfcglOt やかましいわ!
454デフォルトの名無しさん
2018/05/11(金) 15:45:41.92ID:Z82lyl/Y 1. 完全な互換性はないので同じソースコードが全てのJDKで必ずコンパイルできるとは限らない。
2. 完全な互換性はないので同じバイトコードが全てのJVMで必ず実行できるとは限らない。
2. 完全な互換性はないので同じバイトコードが全てのJVMで必ず実行できるとは限らない。
455デフォルトの名無しさん
2018/05/11(金) 16:21:23.17ID:UhEMsKag456デフォルトの名無しさん
2018/05/11(金) 20:24:20.11ID:Cbg+X5+f Classクラスが持つメソッドについて質問です。
メソッドを取得するgetDeclaredMethod()やコンストラクタを取得する
getDeclaredConstructor()の引数に、Class<?>型が含まれているのですが、
何故この型なのでしょうか?
intやdoubleなどの基本型を取る場合もあると思うのですが…。
メソッドを取得するgetDeclaredMethod()やコンストラクタを取得する
getDeclaredConstructor()の引数に、Class<?>型が含まれているのですが、
何故この型なのでしょうか?
intやdoubleなどの基本型を取る場合もあると思うのですが…。
457デフォルトの名無しさん
2018/05/11(金) 20:59:28.55ID:PddvfNsl 基本型を指定したい場合、ラッパークラスの.TYPEを使うんだ
intの場合Integer.TYPEとかそういう感じで
intの場合Integer.TYPEとかそういう感じで
458デフォルトの名無しさん
2018/05/11(金) 23:49:17.69ID:BkhZdaXW459デフォルトの名無しさん
2018/05/12(土) 00:44:10.56ID:zFimtC1H460デフォルトの名無しさん
2018/05/12(土) 10:16:25.78ID:UEBc/Ia0461456
2018/05/12(土) 23:06:04.87ID:zFimtC1H462デフォルトの名無しさん
2018/05/13(日) 20:17:09.11ID:VaYQl2tk レイアウトについて質問させてください。
(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)は両方とも真ん中になります。
なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか?
(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)は両方とも真ん中になります。
なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか?
463デフォルトの名無しさん
2018/05/13(日) 20:36:34.00ID:ZtGqqYsK 見たことない書き方だな
普通にレイアウト書いたらあかんの?
静的でも動的でもいいけど
普通にレイアウト書いたらあかんの?
静的でも動的でもいいけど
464デフォルトの名無しさん
2018/05/13(日) 21:31:40.32ID:v233urWy >>462
JButtonは、alignmentXのデフォがLEFT_ALIGNMENT
JPanelは、alignmentXのデフォがCENTER_ALIGNMENT
JPanelのalignmentXにLEFT_ALIGNMENTを設定したら
JButtonが左に寄った
BoxLayout内のコンポネントは独立して配置されるわけじゃないみたい
わしにはよくわからん
JButtonは、alignmentXのデフォがLEFT_ALIGNMENT
JPanelは、alignmentXのデフォがCENTER_ALIGNMENT
JPanelのalignmentXにLEFT_ALIGNMENTを設定したら
JButtonが左に寄った
BoxLayout内のコンポネントは独立して配置されるわけじゃないみたい
わしにはよくわからん
465デフォルトの名無しさん
2018/05/13(日) 23:14:48.90ID:VaYQl2tk >>464
ありがとうございます。でもそれだとボタン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)) ;
とか、あとボタンをさらに加えたり、色々試してみるんですが、よく分からない。
ありがとうございます。でもそれだとボタン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)) ;
とか、あとボタンをさらに加えたり、色々試してみるんですが、よく分からない。
466デフォルトの名無しさん
2018/05/15(火) 18:37:33.48ID:IdPDIHX7 正規表現について質問なんですけど、
String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;
ここから会社名と住所を取り出したいんですけど、
Pattern pattern1 = Pattern.compile("[(] .* [)]");
これだと
( 多久比禮志神社 )、住所 ( 富山県富山市塩689 )
が取り出されるんですけど、何が悪いんでしょうか?( 多久比禮志神社 )と、( 富山県富山市塩689 ) を別々に取り出したいんです。
String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;
ここから会社名と住所を取り出したいんですけど、
Pattern pattern1 = Pattern.compile("[(] .* [)]");
これだと
( 多久比禮志神社 )、住所 ( 富山県富山市塩689 )
が取り出されるんですけど、何が悪いんでしょうか?( 多久比禮志神社 )と、( 富山県富山市塩689 ) を別々に取り出したいんです。
467デフォルトの名無しさん
2018/05/15(火) 19:13:56.71ID:JYHluoOt [( ].+?[)]
468デフォルトの名無しさん
2018/05/15(火) 19:16:56.51ID:18kCbkVn >>466
最長一致とかでググれ。
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());
最長一致とかでググれ。
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());
469デフォルトの名無しさん
2018/05/15(火) 20:52:24.90ID:r6+CqG6i470デフォルトの名無しさん
2018/05/15(火) 20:53:43.49ID:r6+CqG6i あ、まつがえた
こうだな
\\((.*?)\\).*?\\((.*?)\\)
こうだな
\\((.*?)\\).*?\\((.*?)\\)
471デフォルトの名無しさん
2018/05/15(火) 20:55:15.80ID:JYHluoOt 俺のレスが見えないのか馬鹿ども
無駄な駄レスをまき散らすなアホ
無駄な駄レスをまき散らすなアホ
472デフォルトの名無しさん
2018/05/15(火) 21:36:26.05ID:4HBr8Nk+ \\(([^)]+)\\)
473デフォルトの名無しさん
2018/05/15(火) 22:08:48.50ID:JYHluoOt ∧∧
(д´*)
(⊃⌒*⌒⊂)
/_ノωヽ_)
(д´*)
(⊃⌒*⌒⊂)
/_ノωヽ_)
474デフォルトの名無しさん
2018/05/15(火) 22:09:20.54ID:JYHluoOt THE 性器表現
475デフォルトの名無しさん
2018/05/15(火) 22:20:36.07ID:IdPDIHX7 皆さんほんとに感謝です。最長一致、最短一致は自分で調べていて目にはしていたんですが、解説を読んでもよく分かりませんでした。
こういうコードになりました。
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 )
こういうコードになりました。
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 )
476デフォルトの名無しさん
2018/05/15(火) 22:36:23.61ID:JYHluoOt お前さぁ
俺が一番最初に一番最短のまともな回答書いてやってるのに
なんで意味わからずアスタリスク使った方を選んでんだアホ
これだから馬鹿はイラつくんだよな
説明読んで正規表現もわからんってどんな馬鹿だよ・・
お前はもう二度と書き込むなアホ
俺が一番最初に一番最短のまともな回答書いてやってるのに
なんで意味わからずアスタリスク使った方を選んでんだアホ
これだから馬鹿はイラつくんだよな
説明読んで正規表現もわからんってどんな馬鹿だよ・・
お前はもう二度と書き込むなアホ
477デフォルトの名無しさん
2018/05/15(火) 22:40:19.77ID:4HBr8Nk+ +は邪道でしょ
478デフォルトの名無しさん
2018/05/15(火) 22:40:58.19ID:4HBr8Nk+ >>473
でもアスタリスク使ってるわけだし
でもアスタリスク使ってるわけだし
479デフォルトの名無しさん
2018/05/15(火) 22:54:38.02ID:IdPDIHX7 >>476
申し訳ありません。ところで、あなたの [( ].+?[)] を使うと、
会社名( 多久比禮志神社 )
( 富山県富山市塩689 )
と出力されます。
[(].+?[)]
にすると
( 多久比禮志神社 )
( 富山県富山市塩689 )
になります。なんかまた謎が増えてしまって。
申し訳ありません。ところで、あなたの [( ].+?[)] を使うと、
会社名( 多久比禮志神社 )
( 富山県富山市塩689 )
と出力されます。
[(].+?[)]
にすると
( 多久比禮志神社 )
( 富山県富山市塩689 )
になります。なんかまた謎が増えてしまって。
480デフォルトの名無しさん
2018/05/15(火) 22:59:41.77ID:JYHluoOt >あなたの [( ].+?[)] を使うと、
おめーが使ってる最初の括弧が2バイト文字だからそのまま使ってるだけなんだが
舐めてんのかお前?
おめーが使ってる最初の括弧が2バイト文字だからそのまま使ってるだけなんだが
舐めてんのかお前?
481デフォルトの名無しさん
2018/05/15(火) 23:01:13.76ID:JYHluoOt あ、半角スペース入ってただけだわすまんな
っつーか揚げ足取って挑発してんのかおまえ?
あ?
っつーか揚げ足取って挑発してんのかおまえ?
あ?
482デフォルトの名無しさん
2018/05/15(火) 23:09:47.97ID:IdPDIHX7 >>481
でも半角スペースが入ったら、「会社名」が何で含まれるんでしょうか?揚げ足を取りたいわけではなくて、ほんとに分からない。
でも半角スペースが入ったら、「会社名」が何で含まれるんでしょうか?揚げ足を取りたいわけではなくて、ほんとに分からない。
483デフォルトの名無しさん
2018/05/15(火) 23:30:36.21ID:IdPDIHX7 >>481
申し訳ありません。文字列が違ってました。
"2. 会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探・・・”でした。最初の「2」の後にスペースが入ってました。
重ねて謝罪します。ほんとに申し訳ありませんでした。
申し訳ありません。文字列が違ってました。
"2. 会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探・・・”でした。最初の「2」の後にスペースが入ってました。
重ねて謝罪します。ほんとに申し訳ありませんでした。
484デフォルトの名無しさん
2018/05/15(火) 23:43:31.90ID:1bAdW6Zs 会社名や住所に()が含まれるときここに出た正規表現じゃ全部駄目
再帰的パターン使え
再帰的パターン使え
485デフォルトの名無しさん
2018/05/16(水) 01:40:48.31ID:Ncn1UiZB だめだけど、そういう仕様にしなければいけないという指定はない。
486デフォルトの名無しさん
2018/05/16(水) 04:29:15.58ID:OVunt3L8 * は、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>
+ は、0回以上
? は、0 か1回
{m} は、m回
{m,} は、m回以上
{,n} は、n回以下
{m,n} は、m回以上、n回以下
上は最長一致 (greedy)。
最短一致にするには、? を付ける (reluctant)
*?, +?, ??, {m,}?, {,n}?, {m,n}?
例えば、<div>あ</div> で、
<.*> なら最長一致で、<div>あ</div>
<.*?> なら最短一致で、<div>
488486
2018/05/16(水) 04:58:36.97ID:OVunt3L8 修正
本当は最短一致なら、<[^>]*>
先頭が< で、> 以外の文字が、0以上あって、末尾が>
本当は最短一致なら、<[^>]*>
先頭が< で、> 以外の文字が、0以上あって、末尾が>
489デフォルトの名無しさん
2018/05/16(水) 22:17:26.76ID:RliGnokV なんで \\( と書かずに [(] と書く?
まあこの場合同じ事だけどさ。
まあこの場合同じ事だけどさ。
490デフォルトの名無しさん
2018/05/17(木) 00:43:44.49ID:yxB+aPaP まだ前の人の質問が完結してないみたいですが、質問させて頂いていいでしょうか?
JUnitというツールを使いこなせれば、アサーションは覚えなくても問題無い
でしょうか?
JUnitというツールを使いこなせれば、アサーションは覚えなくても問題無い
でしょうか?
491デフォルトの名無しさん
2018/05/17(木) 04:45:13.62ID:tkjoiiDy お前の頭に問題がある
492デフォルトの名無しさん
2018/05/17(木) 10:22:35.65ID:CDjWE0Pi これはよい炎上学習法
493デフォルトの名無しさん
2018/05/18(金) 16:58:29.13ID:syGPQ258 boolean hoge1=false,hoge2=false;
if(hoge1 == true && hoge2 == true){}
こうやって書くともっとシンプルにって言われるんだけども、
どうやってシンプルに書くのでしょう?
if(hoge1 && hoge2 ){}
だと、両方falseでも条件を満たしますよね?
if(hoge1 == true && hoge2 == true){}
こうやって書くともっとシンプルにって言われるんだけども、
どうやってシンプルに書くのでしょう?
if(hoge1 && hoge2 ){}
だと、両方falseでも条件を満たしますよね?
494デフォルトの名無しさん
2018/05/18(金) 17:17:48.97ID:q0eVLi5m495デフォルトの名無しさん
2018/05/18(金) 18:26:18.59ID:8ItvNdb4 >493
ヒント:入門書読み直し
ヒント:入門書読み直し
496デフォルトの名無しさん
2018/05/18(金) 18:58:41.99ID:fM2r+Hus >>493
やってみな
やってみな
497デフォルトの名無しさん
2018/05/18(金) 19:32:25.01ID:L1Y1ZEs3499デフォルトの名無しさん
2018/05/18(金) 19:50:24.03ID:xP2z7JCS System.out.println(true && true) ;
System.out.println(false && false);
System.out.println(true && false);
true
false
false
System.out.println(false && false);
System.out.println(true && false);
true
false
false
501デフォルトの名無しさん
2018/05/18(金) 20:54:08.79ID:vSzWWhuT なってると思うけどなあ
むしろQZの方が・・・
むしろQZの方が・・・
502デフォルトの名無しさん
2018/05/19(土) 02:01:38.66ID:XScpv1fe 大規模開発用言語のHaxe なんて、
if の条件文は厳格で、Bool しか書けない
Bool以外の変数、a について、
if ( a )
は、コンパイルエラー
if ( a != null )
null でも、わざわざ比較する
if ( a == 1 )
if ( a = 1 )
こういう書き間違いを防ぐため
if の条件文は厳格で、Bool しか書けない
Bool以外の変数、a について、
if ( a )
は、コンパイルエラー
if ( a != null )
null でも、わざわざ比較する
if ( a == 1 )
if ( a = 1 )
こういう書き間違いを防ぐため
503デフォルトの名無しさん
2018/05/19(土) 07:20:54.81ID:b7x1I7X/ >>502
Javaもそうだよ。比較的新しい言語ってだいたいそうなってない?
Javaもそうだよ。比較的新しい言語ってだいたいそうなってない?
504デフォルトの名無しさん
2018/05/19(土) 09:05:01.70ID:yOmhUNnm >>503
スクリプト言語はそうでもないよ
スクリプト言語はそうでもないよ
505デフォルトの名無しさん
2018/05/19(土) 09:39:45.34ID:b7x1I7X/ あー。スクリプトはそうか。
506デフォルトの名無しさん
2018/05/19(土) 10:00:26.93ID:P9NZnjfr507デフォルトの名無しさん
2018/05/19(土) 10:28:05.93ID:sq/G7sle508デフォルトの名無しさん
2018/05/19(土) 11:39:44.12ID:BQeAYIRL いゆしかし if (b == true) は人に何かがおかしいと感じさせるには十分
509デフォルトの名無しさん
2018/05/19(土) 11:52:24.95ID:zEl3eNvL510デフォルトの名無しさん
2018/05/19(土) 11:55:25.27ID:zEl3eNvL 代替を「だいがえ」と言うようなものかな
おかしいけどわかりやすいっしょ
おかしいけどわかりやすいっしょ
511デフォルトの名無しさん
2018/05/19(土) 12:06:04.01ID:4IULO87O あのなぁ
くだらないネタでいつまでもくだらないレスの応酬やめろボケカス低能ども
くだらないネタでいつまでもくだらないレスの応酬やめろボケカス低能ども
512デフォルトの名無しさん
2018/05/19(土) 12:08:35.09ID:zEl3eNvL513デフォルトの名無しさん
2018/05/19(土) 12:55:36.37ID:0KRdo9xC 【そこまで言って委員会】 津川「改憲、死ぬ覚悟ある?」 <ねーのかよw> 安倍「そんなwww」
http://rosie.5ch.net/test/read.cgi/liveplus/1526696087/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1526696087/l50
>>501
詳しく
詳しく
515デフォルトの名無しさん
2018/05/19(土) 14:46:06.80ID:zEl3eNvL >>514
詳しく言うとQZのコードは論理的に破綻してるよねってこと
詳しく言うとQZのコードは論理的に破綻してるよねってこと
516デフォルトの名無しさん
2018/05/19(土) 15:21:18.38ID:sMDzLR8Y >>509
いやそれそもそも分かり辛くないから
いやそれそもそも分かり辛くないから
517デフォルトの名無しさん
2018/05/19(土) 16:01:59.23ID:zEl3eNvL >>516
俺は困ってないからみたいな
分かりづらいと思う人が存在してることを受け入れるんだよ
お前は自分が良ければそれでいい
他人のことなんか知ったことじゃない
俺様こそが世界の全てだと思ってるクッパ野郎だろうけど
世の中にはクリボーもパックンフラワーも居るんだよ
俺は困ってないからみたいな
分かりづらいと思う人が存在してることを受け入れるんだよ
お前は自分が良ければそれでいい
他人のことなんか知ったことじゃない
俺様こそが世界の全てだと思ってるクッパ野郎だろうけど
世の中にはクリボーもパックンフラワーも居るんだよ
518デフォルトの名無しさん
2018/05/19(土) 16:03:14.01ID:zEl3eNvL ニンテンドーは世界の広さと多様性を教えてくれるとても素敵な企業だよね
519デフォルトの名無しさん
2018/05/19(土) 16:05:12.48ID:s0GlRA3+ >>517
分かりづらくない、いやむしろ分かりやすい、と感じ始めたところ辺りが初心者の終わりの始まり。
分かりづらくない、いやむしろ分かりやすい、と感じ始めたところ辺りが初心者の終わりの始まり。
520デフォルトの名無しさん
2018/05/19(土) 16:09:55.41ID:zEl3eNvL521デフォルトの名無しさん
2018/05/19(土) 16:13:18.78ID:zEl3eNvL FF13でヴァニラが使ってたときは恥ずかしくて枕に顔埋めたよね
それ俺のだから〜(///ω///)みたいな
俺が30年前中二病全開のときに思いついたフレーズだからみたいな
よくよく考えれば売上の何%か俺に入ってもいいよねこれ
それ俺のだから〜(///ω///)みたいな
俺が30年前中二病全開のときに思いついたフレーズだからみたいな
よくよく考えれば売上の何%か俺に入ってもいいよねこれ
522デフォルトの名無しさん
2018/05/19(土) 16:17:55.80ID:zEl3eNvL523デフォルトの名無しさん
2018/05/19(土) 16:19:15.09ID:zEl3eNvL ____
/ \ /\ キリッ
. / (ー) (ー)\ 終わりの始まり
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
/ \ /\ キリッ
. / (ー) (ー)\ 終わりの始まり
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
524デフォルトの名無しさん
2018/05/19(土) 16:20:02.61ID:zEl3eNvL 久々に使ってもらえて嬉しかったからついつい失敬失敬
525デフォルトの名無しさん
2018/05/19(土) 17:11:27.14ID:s0GlRA3+ やはり if (b == true) なんて書くやつは何かがおかしいな。
526デフォルトの名無しさん
2018/05/19(土) 17:13:12.24ID:ttKcchMI 自分は if (a && b) と書かれたコードを見たら、5秒か10秒くらい考える口だわ。
527デフォルトの名無しさん
2018/05/19(土) 17:27:23.55ID:zEl3eNvL528デフォルトの名無しさん
2018/05/19(土) 17:28:07.17ID:s0GlRA3+ ま、ifで条件式書かずに直接booleanの変数だけ使うのはあまりないけどな。
何らかの理由で複数回同じ比較をする必要があったりして、無駄だから比較結果を変数に入れといて実際に比較する代わりにそれ使うようにするとかな。
あとはメソッドの戻り値がbooleanで成功がtrue、エラーがfalseの時にifでそのまんま分岐させるとか。
何らかの理由で複数回同じ比較をする必要があったりして、無駄だから比較結果を変数に入れといて実際に比較する代わりにそれ使うようにするとかな。
あとはメソッドの戻り値がbooleanで成功がtrue、エラーがfalseの時にifでそのまんま分岐させるとか。
529デフォルトの名無しさん
2018/05/19(土) 17:28:11.70ID:zEl3eNvL ごめん、俺今日これから終わりの始まりだから
>>520
https://ja.wikiquote.org/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%81%E3%83%AB
「今は終わりではない。これは終わりの始まりですらない。しかしあるいは、始まりの終わりかもしれない。」
"Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning."
>>520
貴様は「始まる前に終わっていた」
https://ja.wikiquote.org/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%81%E3%83%AB
「今は終わりではない。これは終わりの始まりですらない。しかしあるいは、始まりの終わりかもしれない。」
"Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning."
>>520
貴様は「始まる前に終わっていた」
531デフォルトの名無しさん
2018/05/20(日) 15:47:53.02ID:2vtHNIEh >>530
あ、俺チャーチルの生まれ変わりかも
あ、俺チャーチルの生まれ変わりかも
532デフォルトの名無しさん
2018/05/21(月) 19:28:59.75ID:HQk+rkwS public class A(){
int x;
int y;
/*(略)*/
}
みたいなクラスAがあったとして
クラスBにフィールドxを利用するメソッドをつくりたい場合
public class B(){
public void func(int ax){
/*(略)*/
}
/*(略)*/
}
とするのと
public class B(){
public void func(A a){
//a.xのみ利用
/*(略)*/
}
/*(略)*/
}
とするのではどちらが良い書き方でしょうか?
int x;
int y;
/*(略)*/
}
みたいなクラスAがあったとして
クラスBにフィールドxを利用するメソッドをつくりたい場合
public class B(){
public void func(int ax){
/*(略)*/
}
/*(略)*/
}
とするのと
public class B(){
public void func(A a){
//a.xのみ利用
/*(略)*/
}
/*(略)*/
}
とするのではどちらが良い書き方でしょうか?
533デフォルトの名無しさん
2018/05/21(月) 20:07:56.78ID:kCIhHpfP クラスBのフィールドxを使いたいなら前者だし
クラスBのフィールドxに入っている値を使いたいなら後者
設計と考え方次第
クラスBのフィールドxに入っている値を使いたいなら後者
設計と考え方次第
534デフォルトの名無しさん
2018/05/21(月) 20:08:48.56ID:kCIhHpfP ああ、逆だ
値を取り出すべき人はだれかって話
値を取り出すべき人はだれかって話
535デフォルトの名無しさん
2018/05/21(月) 20:31:33.87ID:M7fGJX8z >>532
将来的にクラスAの他の変数にもアクセスするように拡張するなら後者かな。
しかしB側のメソッドに値を渡す度に必ずAのインスタンスが必要になるわけで、それで効率悪くなるとかメモリ食い過ぎになるようなら前者かな。
将来的にクラスAの他の変数にもアクセスするように拡張するなら後者かな。
しかしB側のメソッドに値を渡す度に必ずAのインスタンスが必要になるわけで、それで効率悪くなるとかメモリ食い過ぎになるようなら前者かな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- ぶっちゃけ天のうって昭和天のうのせいで全然ありがたみないよな
- 頭悪いやつほどガンダムとかエヴァにハマるのってなんでなの?
- 犬って顔くっつけて寝たがるよな
- ゲームボーイのゲーム
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
