18/08/25 09:19:55.50 EHvwSMrp0.net
>>373
これの見方がよくわからんのだけど何がnullになってるの?
392:374
18/08/25 10:26:08.92 EHvwSMrp0.net
自分もjava勉強中なので試しに作ってみた
これで動いたよ
違うところだけ書いてみる
public class Hero extends Caractor {
Hero(String name){
this.name = name;
}
public void attack(Caractor m){
System.out.println(this.name + "のこうげき!");
System.out.println(m.name + "に10のダメージを与えた!");
m.hp -=10;
}
}
public class Slime extends Caractor {
Slime(String name, int hp){
this.name = name;
this.hp = hp;
}
public void run(){
System.out.println(this.name+"は逃げ出した!");
}
}
あとはだいたい同じです。
393:デフォルトの名無しさん
18/08/25 10:36:53.08 EHvwSMrp0.net
あ、あとキャラクターのフィールドがprivateになってるからprotectedにしたら動いたよ
これが綺麗なコードかはわからないけどとりあえずどうでしょうか
394:デフォルトの名無しさん
18/08/25 11:33:36.67 ldpy0bgQ0.net
>>373
継承先のクラスで同じ名前でフィールドを定義しても別のフィールドになる
attackメソッドにSlimeのインスタンスを入れているけど
Monsterクラスのnameを見てるのでSlimeに設定したnameは表示されないでnullが表示される
395:デフォルトの名無しさん
18/08/25 12:54:17.01 gxBSyOuw0.net
子クラスで、親クラスと同じ名前のフィールドを定義したら、ダメ!
オブジェクト指向としては、明らかな間違い!
同名のメソッドは、上書き(オーバーライド)するけど、フィールドはしない
396:デフォルトの名無しさん
18/08/25 13:14:33.12 gxBSyOuw0.net
for (Character c : list) { c.attack( ); }
list に、モンスターや勇者などを混ぜて入れて、
その親クラスのCharacter として、抽象化して扱えば、
if 文で、モンスターや勇者の処理を、場合分けせずにすむ
モンスターや勇者は、それぞれ実体に基づき、自動的に攻撃する。
見かけの型は親クラスだが、攻撃は子クラスのメソッドを呼ぶ
つまり、抽象化する事によって、型による分岐がなくなる!
逆に言えば、型によって分岐していたら、オブジェクト指向ではない
if モンスター型なら
if プレイヤー型なら
397:デフォルトの名無しさん
18/08/25 13:24:39.80 KMExyDFm0.net
>>379
オブジェクト指向ではポリモーフィズムが大事なんだって考えだね
398:デフォルトの名無しさん
18/08/25 13:51:30.74 QXNuAaPsM.net
時代遅れな考えだよね
最近は関数型の影響によって型による分岐が市民権を得つつある
C#もついにパターンマッチを導入して型による分岐を積極的に推奨するようになった
Javaも10年くらいしたらそうなるよ
399:デフォルトの名無しさん
18/08/25 14:36:23.71 t7aLMQyua.net
推奨はしてない
ポリモーより型スイッチの方が書きやすい場合も存在するよね
全否定しないでそういうのもサポートしていこうよってだけ
型スイッチがポリモーを置き換えるかというと全くそんなことはなくて
せいぜいデータドリブンのアプローチで書かれた僅かな部分の記述が綺麗になる程度
400:デフォルトの名無しさん
18/08/25 14:53:44.82 KMExyDFm0.net
>>382
なるほど、それなら分かる
401:
18/08/25 15:45:54.17 gxBSyOuw0.net
>>379
のやり方では、新たにモンスターを追加しても、ソースコードを修正しなくてよい
もし型によって分岐していたら、大変。
すべての分岐箇所を修正して、テストしないといけない!
項目が追加された際の、分岐箇所の修正をなくすために、オブジェクト指向が作られた
402:デフォルトの名無しさん
18/08/25 18:14:08.91 b/emt3jR0.net
>>375
ありがとうございます。いけました
この本該当ページにHeroクラスしか書いてないから
コンパイル失敗したら手詰まりで;
attack(Caractor m){ ←ここがattack(Monster m)だったから動かなかったんですかね?
Slimeと同じ親持ってないと出来ないんですね。本はMonsterとなってたので本が間違えてるんですね
403:デフォルトの名無しさん
18/08/25 18:30:25.41 RUz16HRCd.net
>>385
その理解だと危ない
Slimeクラスフィールドの定義と使い方の問題だからスコープやらOrverrideをちゃんと理解したほうがいい
教本によくある「親は子を使えない」の典型例だぞ
404:デフォルトの名無しさん
18/08/25 18:37:44.34 RUz16HRCd.net
まぁとはいえ細かい部分の理解は後で修正は効くから先に進んでも別に良い
405:デフォルトの名無しさん
18/08/25 18:47:47.60 b/emt3jR0.net
>>377-378
フィールドはオーバーライドしないんですね。408-409ページにて普通に継承先で同じフィールドを定義してたので
いいのかなって思ってました。
同じフィールドを使いたい場合は親にあるメンバを使えばいいんですね。タメになります
ありがとうございます
406:デフォルトの名無しさん
18/08/25 19:35:13.69 b/emt3jR0.net
>>386
フィールド直したら仮引数がMonsterの元々あったコードでもいけました
SlimeとHeroが同じ親だとis-aの関係がおかしいと思ってたので助かりました
ありがとうございます
…もっかい読み直してみます^^;
407:デフォルトの名無しさん
18/08/26 02:02:46.21 UC7Cb0Ac0.net
文字列比較containsで正規表現は使えますか?
とあるサイトで使えるとあったので試してみましたが使えませんでした
408:デフォルトの名無しさん
18/08/26 02:12:09.19 IHxJX3F+0.net
>>390
使えないよ、そのサイトが間違ってる
409:デフォルトの名無しさん
18/08/26 03:16:41.69 UC7Cb0Ac0.net
ありがとうございました
410:デフォルトの名無しさん
18/08/26 10:30:20.29 iIRyt0Moa.net
Kotlinは使えた気がするから、そのサイトはKotlinと混同してるのかもね
411:デフォルトの名無しさん
18/08/26 13:23:38.37 HHP/3bjy0.net
Kotlin の場合は Regex のインスタンス渡すやつがあるからそれで使える。
Regex ではなく String のインスタンス渡した場合は Java と同じ動作。
412:デフォルトの名無しさん
18/08/27 11:05:42.24 efjEsUrt0.net
サイトの質問で申し訳ないんですが
paizaって入力を受け付ける関数とかは使えないんですか?
int abc=new java.util.Scanner(System.in)nextInt();って打っても実行はできるんですが
入力まち画面は出ません
413:デフォルトの名無しさん
18/08/27 11:37:43.51 ba8BcfX30.net
出力が標準出力で、入力は標準入力。
入力の所に書けば?
ファイルから読み込みたいのなら、
ファイル名の右横にある、+ を押して、入力ファイルを作る
414:デフォルトの名無しさん
18/08/27 12:01:59.11 efjEsUrt0.net
>>396
了解しました
実行の下にあるのに全然気づきませんでした(@@;)
ありがとうございます
415:デフォルトの名無しさん
18/08/27 12:32:02.03 dQ3pJlXI0.net
EntityクラスにDBのデータを入れて加工してDAOクラスに突っ込んでViewに投げるという処理を流れ作業としてやっているのですが、クエリで絞っていきなりDAOに入れたら早いかもと感じています。Entityクラスを省くのはjava開発的にどうなのでしょうか。
もう別の新しい概念があるのかもしれませんが
416:デフォルトの名無しさん
18/08/27 12:54:00.84 HPy1/YKZa.net
DAOに突っ込むってどういう意味?ViewってDBのViewなのかMVCのViewなのかどっち?
java開発的にどうとか以前に曖昧な言葉遣いに注意せよ
417:デフォルトの名無しさん
18/08/27 21:17:09.10 VnEVG+oDM.net
こちらで質問していいの
418:か分かりませんが… プログラミングは全く勉強したことがありません。 仕事でジェノグラム(家族図的なもの)をよく作成するので、家族歴(結婚、離婚、出生、死亡)の時間軸に合わせてその時期にどんな家族状況だったかを図示できるようなプログラミングを作ってみたいなと思ってます。 こういうものを作るのに最適なアプリケーションってどんなものなんでしょうか。 エクセルが好きで関数いじったりするのは苦になりません。 よろしくお願いします。
419:デフォルトの名無しさん
18/08/27 21:31:24.25 dJeCT78qM.net
>>400
Excel好きなんだったらExcelでいいよ
VBAちょっと齧れば十分やりたいことはできるはず
本格的なプログラミングは本業にして金稼がない限り習得コストや手間の割に合わんよ
420:デフォルトの名無しさん
18/08/27 21:31:31.57 l2rfNjjda.net
>>400
やっぱそれってExcelのマクロでやっちゃった方が良いんじゃないかなあ。
いやもしかするとマクロも要らんかも知れないよね。グラフ出せたりするし。
Excelの事は良くわからないけど。
421:398
18/08/27 21:36:06.38 Psg4p/SV0.net
最近クラスとメソッドを覚えたような素人で言葉が足らずすみません
Entityクラスを作らずDAOクラスから直接DTOクラスを作ってしまうのは良くない事なのかご意見を聞きたかった次第です
422:デフォルトの名無しさん
18/08/27 22:10:38.71 dJeCT78qM.net
>>403
Javaドカタワールドで一般的にいうentityってのはDBとアプリケーションコードとの間のデータの受け渡しに使われるDTOの一種にすぎない
最終的にViewに渡すものと同じなら省略するなり好きにしたらいい
エンティティは本来ドメインモデル上の登場人物であり、ビジネスロジックで主役として振る舞うべきもので、
DAOの中でデータアクセスのためだけにEntityを使うってのは本来はおかしな話
423:デフォルトの名無しさん
18/08/28 00:26:20.98 TEJeUOom0.net
プログラム(Java) ←→ entity ←→ DB
Rails が、migration で自動的に作るのを、手作業で作っているだけだろ
424:デフォルトの名無しさん
18/08/28 06:59:33.13 CaCX57FK0.net
>>404
DAOのEntityとドメイン駆動のEntityを混同してないですか?
javaドカの世界はオレオレ理解が星の数ほどありそうで怖いです
425:デフォルトの名無しさん
18/08/28 07:01:25.66 CaCX57FK0.net
>>405
Entityぶち込みの概念はRailsのが後じゃ
426:デフォルトの名無しさん
18/08/28 08:52:02.52 oX5PU4jWa.net
[DB] -- DTO(399の会社ではentity) -- [DAO(ドメインモデルではrepository)] -- DTO(ドメインモデルではentity) -- [サービス/ユースケース/トランザクション(たぶん399の会社にはない)] -- [コントローラ] -- DTO/ViewBag -- [ビュー]
こうか?
427:デフォルトの名無しさん
18/08/28 09:13:22.39 oX5PU4jWa.net
書いてて思ったけど、一番左のDTOはDTOというよりActive Recordかなあ
そこらへんはDAOを主軸にして見るならあくまでDAOの実装の詳細だからアーキテクチャ的にはどうでもよい部分
DAOの中でSQL書いて左から2番目のDTOに直接詰めるのももちろんアリ、というかORM使わないなら普通はそうする
428:デフォルトの名無しさん
18/08/28 12:36:39.57 CaCX57FK0.net
>>409
クエリ書ける軽量ORMとかならEntityクラスなんて要らねーよという雰囲気ですかね
でも、お作法としてEntityクラス作るのもありかなと
DBのリプレースに強そうなんで
429:デフォルトの名無しさん
18/08/28 12:39:50.34 CaCX57FK0.net
つかEntityとDTOを分けない所多いんですか?
未経験で世界が狭いので興味あります
430:デフォルトの名無しさん
18/08/28 13:35:17.88 psOOFlweM.net
DBの詳細を吸収するのは一般的にはDAOの仕事
更にドメイン寄りの論理的な型とシリアライズ用の型を区別したいんなら、
(DDDでいう)エンティティを返すリポジトリクラスがあって、
リポジトリが中でDAOを使ってDBからデータ引っ張ってきて行オブジェクトをエンティティに変換するのが今風だと思う
431:デフォルトの名無しさん
18/08/29 06:50:26.78 Q2YQokuo0.net
javaを勉強中の学生です。
画像の問題が全くわからなく、空欄の答えとできればその理由を簡単にでいいので教えて頂きたいです、、
どうかよろしくお願いします。
URLリンク(i.imgur.com)
432:デフォルトの名無しさん
18/08/29 09:00:37.32 ZDG8YYaGa.net
ヒント
Int型のiを他の型にキャストしてみよう
433:デフォルトの名無しさん
18/08/29 09:18:55.27 nm+82+J6C.net
>>413
String.format()を駆使する
434:デフォルトの名無しさん
18/08/29 09:22:36.45 9k/VMyPqr.net
>>413
「Java String 空白埋め」とかでググろう
435:デフォルトの名無しさん
18/08/29 10:56:03.84 g0t1qxJja.net
ヒントありがとうございます!
自分なりに考えた結果
String.format(‘‘%.’’+i+‘‘f’’,i)
で合ってますかね?
帰って打ち込めば分かる話なのですがw
436:デフォルトの名無しさん
18/08/29 11:00:53.34 LhfUpRDDM.net
それにしても問題のための問題という感じだな。
解ける人向けのなぞなぞみたいなもんで、出題者に意味や知性を感じられない。
437:デフォルトの名無しさん
18/08/29 12:05:33.04 wxHokPsyM.net
>>417
そんな感じ
空白の書式と数値の書式が必要になりそう
438:デフォルトの名無しさん
18/08/29 12:26:12.61 agelIibQM.net
Utilクラスをstaticにしない意味って何かあるのでしょうか?
今の現場の仕様がUtilのメソッドをいちいちnewしなきゃならなくて
とてもいらつくのですが…
439:デフォルトの名無しさん
18/08/29 12:30:28.52 nm+82+J6C.net
>>417
キャストしないとエラーになる
440:デフォルトの名無しさん
18/08/29 13:00:25.63 wZaD4gXBa.net
実際formatの書式なんて覚えてる必要ないんだけどな
うろ覚えであーでもないこーでもないとやってる暇があったら、そんなことに時間使わずに即ググって欲しい
441:デフォルトの名無しさん
18/08/29 18:52:47.00 bZ2D0xRLa.net
>>417
引数の側のiは (double) i という具合にキャストする必要がある。
しかしそれでは完全に一致する出力にならない。0だけスペースが一つ多くなる。
もうほとんど出題ミスのような感じがしてならないのだが、更に捻ると全てが完全一致する出力を作れる。
442:デフォルトの名無しさん
18/08/29 18:54:57.86 bZ2D0xRLa.net
あ、ごめん。まだ左側スペース入れるformatになってなかったか。
ま、やってる内にどういうことかわかる。
443:デフォルトの名無しさん
18/08/29 19:39:49.84 b/VcLTdm0.net
>>424
あるよ
%6.3f
という感じ
444:デフォルトの名無しさん
18/08/29 21:18:05.63 tTgGQU3y0.net
>>425
それだとこうなっちゃうんよ
URLリンク(paiza.io)
_____0
___1.0
__2.00
_3.000
こやればいんだけど、こんなの問題にするかねと
URLリンク(paiza.io)
445:デフォルトの名無しさん
18/08/29 22:01:21.61 b/VcLTdm0.net
for (int i = 0; i < 4; i++) {
System.out.println(String.format("%" + ((i == 0) ? 5 : 6) + "." + i + "f", (float)i));
}
446:デフォルトの名無しさん
18/08/29 22:04:24.07 n9AQAOMs0.net
こんなのソラで書けても実務ではほぼ無意味だ
この問題が本当に問題のための問題だな
447:デフォルトの名無しさん
18/08/29 22:12:26.61 b/VcLTdm0.net
でも >>426 が言ってる方が自然�
448:ゥもね for (int i = 0; i < 4; i++) { System.out.println(String.format("%" + (4 - i) + "s%." + i + "f", "", (float)i)); }
449:デフォルトの名無しさん
18/08/30 09:37:14.90 Le3eFjina.net
出題ミスか引っかけ問題かな。
またはミスと気づいたけど引っかけ問題として丁度良いからミスではなかったことにして放置か。
しかし初心者に出すにはどうかという感じもする。実際にこんなのが必要とされることもなさそうだし。
もはやパズルだよなあ。
450:デフォルトの名無しさん
18/08/31 12:31:48.30 N1CziDiXM.net
もう古いと言われてるデザインパターンを何度も身につけようとしては挫折
写経だけじゃ理解するのは難しいですか?
451:デフォルトの名無しさん
18/08/31 12:52:51.06 hD6bHOXYa.net
かといって全てがわからないわけでもないんだろ?
452:デフォルトの名無しさん
18/08/31 13:11:32.74 lv4qnKPxM.net
>>431
写経して図を描いて
図を見ながら写経して
図を見ながらプログラム書いて
プログラムと図を相互に変換できるようになったら
理解したと言っていいと思う
イメージすること人間の計算能力
453:デフォルトの名無しさん
18/08/31 18:10:41.56 eNdvG/210.net
デザインパターンはもう古いんじゃ無くて今のフレームワークに織り込まれてるんじゃないの
フレームワークに合わせるとデザインパターン強制される的な
454:デフォルトの名無しさん
18/08/31 22:11:29.93 VkTWbVQX0.net
スマホのSDKとか基本的にTemplate Methodよな
455:デフォルトの名無しさん
18/09/01 08:53:27.34 u4pJ8FQM0.net
言語機能の進化でそもそも不要になるパターンもあるな
例えばkotlinだとbuilderパターンなんて必要ないし
456:デフォルトの名無しさん
18/09/01 08:57:36.98 FRKhXQkv0.net
GoFのデザインパターンの大部分を占める、オブジェクト指向言語の機能で高階関数をエミュレートしてみた系は、Lambdaがある今では不要
457:デフォルトの名無しさん
18/09/06 23:00:51.53 i7jlwt+T0.net
初心者です。
eclipseを導入したのですが、コンソールで接続語のみ文字化けします。
ソースコードなどは問題なく、例えばSystem.out.print(a + "と" + b + ("では") + c + "の方が大きい"))と入力して実行すると「a□b□□c□方が大きい」となります。
「eclipse 文字化け」等で調べた内容は試しましたが改善しませんでした。
どなたか助けてください。
458:デフォルトの名無しさん
18/09/06 23:05:19.86 i7jlwt+T0.net
すいません、ソースコードの()忘れまくってました
System.out.print(a + ("と") + b + ("では") + c + ("の方が大きい")) 等と入力した時です
459:デフォルトの名無しさん
18/09/06 23:18:26.50 VSCSfufl0.net
>>438
eclipseのフォルダにeclipse.iniというファイルがあるので
その中の
-vmargs
の下に↓これを追加でおk
-Dfile.encoding=utf-8
460:デフォルトの名無しさん
18/09/07 01:42:15.65 cvrKvOFs0.net
そのカッコ必要ないけどね
461:デフォルトの名無しさん
18/09/07 07:29:23.11 spiHhlEL0.net
>>440
それも試しましたが改善しませんでした。
何回か立ち上げ直すと文字化けしない時もありましたが、少しするとまた文字化けします。
>>441
()めんどくさいなと思ってました・・・
ありがとうございます。
462:デフォルトの名無しさん
18/09/07 07:33:48.11 9erH5wRI0.net
>>442
コンソールのフォントを変えてみるとか
463:デフォルトの名無しさん
18/09/07 11:31:44.81 939inRae0.net
コンソールで、文字コードの設定は出来ないの?
まあ日本語は、UTF-8, shift-jis のどちらかだろうけど、
プログラミングはすべて、BOMなしUTF-8(UTF-8N)に統一すればよい
その代わり、Windows のExplorer では、文字列検索できなくなるので、
WSL・Ubuntu を入れて、Linux 側からgrep する
shift-jis とか、文字コードの自動判定などは、使わない。
自動判定は間違う場合もあるから�
464:A面倒
465:デフォルトの名無しさん
18/09/07 11:49:49.48 hwUqZ5b1a.net
出た、今必要のない余計な情報を付け加えまくって初心者を混乱される大先生
466:デフォルトの名無しさん
18/09/07 11:53:32.83 avaKv6NMM.net
良いじゃん
会話は広がるから面白いんだよ
467:デフォルトの名無しさん
18/09/07 11:56:50.24 avaKv6NMM.net
樹木は枝を広げることで太陽パワーを得るんだ
468:デフォルトの名無しさん
18/09/07 12:16:54.08 kXzYLjHca.net
ここは樹木ではない。
469:デフォルトの名無しさん
18/09/07 12:20:15.43 avaKv6NMM.net
>>448
樹木だなんて言ってない
470:444
18/09/07 14:37:06.58 939inRae0.net
VSCode でも、文字コードを自動判定にしていると、
判定を間違えて、文字化けする
471:デフォルトの名無しさん
18/09/07 16:41:25.29 756xTqfC0.net
MSはbom付きが何故か好きだったりするな
472:デフォルトの名無しさん
18/09/07 16:49:00.32 756xTqfC0.net
そういえばwindowsでのデフォルトエンコードはshift-jisだったな
URLリンク(qiita.com)
この辺かな?
473:
18/09/07 21:48:46.13 WaHB6+zk0.net
>>452
しかし、NTFSやFAT32は UTF-16LE だったりするし、いわゆるシステムコール(win32api)には UTF16用とShift-JIS 用の両方が準備されている
474:デフォルトの名無しさん
18/09/08 00:13:12.33 AXhw471Hd.net
Javaでエロサイト作りました。
URLリンク(www.nuliu-movie.net)
475:デフォルトの名無しさん
18/09/08 10:00:27.17 10SOqO6NM.net
>>438
の件、1日経ったら改善していました。
失礼しました。
476:デフォルトの名無しさん
18/09/08 10:20:18.78 /uNaEXjk0.net
たぶん1日経ったことではなく再起動したことが大きいと思う
477:デフォルトの名無しさん
18/09/08 10:23:10.58 M9YsL2780.net
時間は何も解決してくれない
478:デフォルトの名無しさん
18/09/08 11:57:54.81 Z5oAfZnva.net
PCそろそろ逝きかけてる?
479:デフォルトの名無しさん
18/09/08 11:59:24.40 Z5oAfZnva.net
色々試しているうちに何が効いたのかわからない状態かもな
480:デフォルトの名無しさん
18/09/08 14:07:21.61 kEOPIOXH0.net
寝ている時に猫がキーボードの上を歩き更にマウスにじゃれたりして、それによって偶然実行された何かによって
いや、なんでもない。忘れてくれ。
481:デフォルトの名無しさん
18/09/08 16:53:00.05 10SOqO6NM.net
一通り試した後、何回か再起動して直らなかったんですよね
それから勉強する分には支障ないしいいや、と思って放置してたら直ってた
システムの環境変数?だかも何回か設定し直さないと反映されなかったし、パソコンが原因かも
482:デフォルトの名無しさん
18/09/13 10:48:23.00 80HTn1A0M.net
現在java入門書を読み終える段階です。
あるまとめでjava入門書の後にRudyやPython等の入門書を読んでからjava実践編を読むのがおすすめ、というのを見たのですが
どういった意図があるのでしょうか?
また、皆さん個人の意見として上記のような学習方法はおすすめできますか?
483:デフォルトの名無しさん
18/09/13 11:24:13.86 KmZuc+Toa.net
>>462
たぶん早いうちに色々なスタイルの言語に触れて、そしてその中から自分の好きなものを選べという意図があると思う。
ただし俺は反対。javaの入門書を読んだならそのままjavaをもう少し深く理解したほうが良いと思う。
その後で他の言語を見たほうがjavaとの違いなどが理解できるようになる。
484:デフォルトの名無しさん
18/09/13 11:42:10.23 TEqZYDm7a.net
>>462
一つの言語だけだと「そういうもんか」としか思えないだろうけど、
他の言語を知ることで表面的な仕様の裏にある意図や思想が見えてくるようになる
そして、言語の各機能の意図や思想がわかればその正しい使い方がわかる
個人的には賛�
485:ャだけど、今更Rubyはやめとけ
486:デフォルトの名無しさん
18/09/13 12:56:06.96 cU5S5NHGa.net
>>462
人にもよると思うが、混乱しそうな感じがするのであまりおすすめしない。
ある程度 Java が使えるようになってから他の言語に取り組んだ方が良いのではないか?
487:デフォルトの名無しさん
18/09/13 13:48:21.40 1gM+2X37M.net
何でもかんでもついばむだけみたいな
488:デフォルトの名無しさん
18/09/13 14:01:44.48 zfK1S5+JM.net
ソフトウェアエンジニアになりたいのかJava土方になりたいのかによるかな
後者なら変な知恵がついてる奴より余計な疑問を持たずに周りのやり方に合わせてコピペできる奴の方が使いやすい
Javaのプロの人は後者になるための教育を受けてきてる(or後者を生産・使役する)人が多いからそういう人の話は注意して聞いたほうがいい
489:デフォルトの名無しさん
18/09/13 23:54:21.89 7EcaHTzm0.net
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
みんなのは、数学系とか仕事で必要なら読めば?
Ruby は、テキスト処理・コマンド・1-liner とかできるから、Linux では重宝。
PowerShell・シェルスクリプト・awk・sed・perl の代わりになる
Rubyをやっておけば、PowerShell, JavaScript, jQuery, Kotlin なども良くわかる。
メソッドチェーン・関数型の書き方だから。
Rubyで、プログラミングの基礎体力が向上する!
早くにやって損はない。
後で、別の言語の勉強がはかどる
Pythonは、その辺と文法が違うから、手軽にはいかない
490:デフォルトの名無しさん
18/09/14 00:00:48.26 T/0ITtsha.net
自分で触ったことがあるならPythonは明らかにJavaをリスペクトしてることがわかるんだけどね
Rubyやると>>468みたいな基地外になるよ
491:デフォルトの名無しさん
18/09/14 06:26:54.82 K66vPpxA0.net
1つだけ言えるのは、>>468は完全に無視していい
492:デフォルトの名無しさん
18/09/14 19:07:57.59 mwTGxLlkM.net
本当に0からのスタートなので、まずはJavaをしっかり学ぶことにします。
493:デフォルトの名無しさん
18/09/17 20:32:52.98 vW1P/H+V0.net
>>469
自分で触ったことがあるならPythonは明らかにオブジェクト指向に関しては違うことがわかるんだけどね
494:デフォルトの名無しさん
18/09/18 07:51:07.02 Wjwixwwi0.net
Eclipseで時計を作りましたが表示がおかしいのでアドバイスお願いします
小さなウィンドウに数字で時刻が表示されるだけの簡単なものです
モニタを2枚使っているのですが、
メインの方ではウィンドウの中に表示されるはずの時刻が一切表示されません
なぜかサブの方にドラッグして持っていくと表示されます
Eclipseが起動してる状態だとメインのほうでも表示されます
repaintメソッドを使って1秒ごとに表示させているのですが
paintメソッドの中身を軽くしないとダメとかありますか?
Swing導入しています
これだけでは伝わらないと思いますがエスパーの方いらっしゃったらよろしくお願いします
495:デフォルトの名無しさん
18/09/18 10:36:59.77 PLvFhIgqa.net
完全な当てずっぽうだけど、えくりぷすを起動している時だけ設定される環境変数が影響してるとか?
496:デフォルトの名無しさん
18/09/18 15:32:25.20 Wjwixwwi0.net
>>474
eclipse閉じていてもサブモニタのほうだと表示されるのがよくわからないんですよね
同じ症状がでる範囲内でいろいろそぎ落としてみました↓
497:デフォルトの名無しさん
18/09/18 15:32:42.50 Wjwixwwi0.net
import java.awt.Graphics;
import javax.swing.JFrame;
public class myClock extends JFrame implements Runnable {
static myClock c
498:l = new myClock(); static Thread thrd = new Thread(cl); public static void main(String[] args) { cl.setVisible(true); thrd.start(); } public void run() { while(true) { repaint(); try { thrd.sleep(1000); } catch(InterruptedException e) { } } } public void paint(Graphics g) { super.paint(g); g.drawString("test", 80, 40); } myClock() { setSize(240, 70); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
499:デフォルトの名無しさん
18/09/18 15:39:30.94 Wjwixwwi0.net
ちなみにこのサイトの
URLリンク(yay.cla.kobe-u.ac.jp)
上のほうにある 「デジタルクロック(MyDigitalClock.java)」
のコードをコピペして試してみたところ表示されない問題は起きませんでした
500:デフォルトの名無しさん
18/09/19 03:29:57.76 ti9UWKMZ0.net
URLリンク(www.wisdomsoft.jp)
501:デフォルトの名無しさん
18/09/19 05:05:36.27 /Yn8C7350.net
try {
thrd.sleep(1000);
} catch(InterruptedException e) {
}
例外が起こっても、catch が空文だから、例外を処理していない。
これは例外の握りつぶしと言って、やってはいけない
アプリを終了させるなど、何かエラー処理を書かないといけない
何も書かないと、エラーが起こっているのに、
アプリが存在し続ける、または動き続ける
502:デフォルトの名無しさん
18/09/19 07:32:04.78 9j05f62H0.net
レスありがとうございます
>>478
使い方間違ってるかもしれませんがなんとかそれで行けました
この辺を自分で解決出来ないとだめですね
実はぐぐりまくってる時にpaintComponentは怪しいと思って試して見たんですがあと一歩及んでなかったです
>>479
修正しました
すっきり入門読み終わった段階で作った初めてのプログラムですが
まだまだ知識足りてませんね
import文抜きで修正済貼っておきます
↓
503:デフォルトの名無しさん
18/09/19 07:32:22.29 9j05f62H0.net
public class myClock extends JFrame implements Runnable {
static myClock cl = new myClock();
static Thread thrd = new Thread(cl);
public static void main(String[] args) {
cl.setVisible(true);
thrd.start();
}
public void run() {
while(true) {
repaint();
try {
thrd.sleep(1000);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
class GPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("test", 80, 40);
}
}
myClock() {
setSize(240, 70);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new GPanel(), BorderLayout.CENTER);
}
}
504:デフォルトの名無しさん
18/09/19 07:48:39.26 9j05f62H0.net
GPanelクラスが中にはいっちゃってました
コンストラクタの下、外に出しておきました
505:デフォルトの名無しさん
18/09/19 21:31:45.37 PT8Q1qAA0.net
しゅみましぇん初心者なんですが開発環境でエクリプスってのインストールしたらJDKやJREってのは不要なんですか?教えてエロい人
506:デフォルトの名無しさん
18/09/19 21:41:20.74 b6dng2VDa.net
必要
今月で無償のJDKはサポート終了するからオラクルに金払ってJDK11買ってね
507:デフォルトの名無しさん
18/09/19 21:48:18.24 PT8Q1qAA0.net
ふぇ!?無料と有料両方あるんじゃないんでしゅか?
つーかエクリプスダウンロードしゅごい時間かかるんでしゅね
508:デフォルトの名無しさん
18/09/19 21:49:12.23 zcXFtBV7a.net
そういやこれまでeclipseで必要か否かに関わらず無条件にJDKインストールしてたからeclipseで必要かどうかなんて考えた事もなかったな。
509:デフォルトの名無しさん
18/09/19 22:00:54.62 8oznxs6p0.net
この前プログラミングスクールの中の人になんでいまだにエクリプスなんて使わせるのか聞いたんだけど、
単純に一線についていけなくなったロートルを講師として安く雇うから、教える側がエクリプスしか使えないらしい
510:デフォルトの名無しさん
18/09/19 22:20:31.29 /Yn8C7350.net
>>481
すべての行に、print 1, print 2 ... という感じで、print 文を入れて、
どこまで
511:実行されているのか、確かめる それか、デバッガーで1行ずつ実行して確かめる まず、ここまで実行されて、ここは実行されていないという、地点を探す
512:デフォルトの名無しさん
18/09/20 07:09:25.66 0vHOtJkY0.net
C#ならVisualStudio1択ですけどjavaはEclipse1択では無いんですか?
513:デフォルトの名無しさん
18/09/20 09:32:23.34 cMPVhU9ia.net
>>489
JetBrain の IntelliJ IDEA ってのもあるよ。
514:デフォルトの名無しさん
18/09/20 10:57:50.23 9tRwSzt9d.net
ヒープのサイズとかって、起動用のシェルスクリプトとかでコマンドラインに並べてますが、
Javaのソース中で設定できませんか
Javaソース以外に、起動用のシェルスクリプトも管理対象資材にする必要があるのを
なんとかならないかなと思ってます
515:デフォルトの名無しさん
18/09/20 11:01:25.68 T35mVtQna.net
>>489
Eclipseはもう色々限界でどんどんシュリンクしてる。
今はIntelliJ使う人が多いんじゃないかな。
Web開発しないなら無料版で大丈夫だし、仮に有料版買ったとしても糞みたいなプラグインの依存関係管理とかが消えるだけでも十分価値あるし。
516:デフォルトの名無しさん
18/09/20 11:15:32.57 5eDdLMhsM.net
Javaドカはeclipseだよ
膨大な手順書の更新とかライセンス契約とか申請とか面倒臭すぎるからな
どうせコピペ仕事しかしないくせにPGの好みなんかどうでもいい
517:デフォルトの名無しさん
18/09/20 11:38:33.59 k0r/9zN1M.net
>>492
どこ情報よそれ
518:デフォルトの名無しさん
18/09/20 15:04:27.07 qPy/9IGfd.net
b = a++;
b = ++a;
の違いのような問題がbronzeでの出題頻度が高いということなんですけど、実際こういう書き方はよく使われるんでしょうか。
どうもややこしいので、もっと分かりやすく書けないものかと思うんですが
519:デフォルトの名無しさん
18/09/20 15:34:33.29 5eDdLMhsM.net
>>495
俺がレビュワーならPGかそんな糞コード書いてきやがったら書き直させる
520:デフォルトの名無しさん
18/09/20 16:11:19.30 TeQNOAP0a.net
>>495
使わない。何故ならややこしくてバグの元になるから。
521:デフォルトの名無しさん
18/09/20 16:34:32.97 qPy/9IGfd.net
やはりそうなんですね
わざわざ条件式のなかで評価をさせたりするのも引っかけ問題的な狙いなんでしょうか…
まあ書かれてるのを読み取る訓練にはなるんでしょうかね
522:デフォルトの名無しさん
18/09/20 17:40:39.49 TeQNOAP0a.net
引っ掻けというか、使わなくても読んでわかる必要はあるからなあ。
523:デフォルトの名無しさん
18/09/20 18:24:32.51 QL0PNP4W0.net
さすがにその程度でややこしいってのは問題あると思うぞ
524:デフォルトの名無しさん
18/09/20 18:48:03.03 TeQNOAP0a.net
ま、初心者には難解に見えるのだろう。
やがてわかるのだが使いたくないものになる。
525:デフォルトの名無しさん
18/09/20 20:28:03.45 y8qM5dc20.net
変数に再代入をする言語では別に普通の書き方。
526:デフォルトの名無しさん
18/09/21 00:53:31.57 m8DL5ZJ40.net
Ruby では、++, -- 演算子はない。
前置・後置で、意味が違うから、ややこしい
自己代入だけ
a += 1
a -= 1
527:デフォルトの名無しさん
18/09/21 05:57:07.43 U/90uWFm0.net
難しいとは思わんけど、>>495みたいなコードかいてたら直せって言うな、俺も
528:デフォルトの名無しさん
18/09/21 12:39:21.43 rhYAEPMQd.net
for (i=0; i<10; i+=1){}
みたいに書くんかな
529:デフォルトの名無しさん
18/09/21 14:27:23.40 isbUNhMla.net
>>505
それは ++ で良いのでは?
他の変数に代入もしてないし、ポインタで括弧のありなしで違う動きになるわけでもないし。
530:デフォルトの名無しさん
18/09/21 14:28:07.34 isbUNhMla.net
すまん。ここJavaスレだったね。ポインタ計算はないね。
531:デフォルトの名無しさん
18/09/21 16:23:14.99 9Uudce490.net
>>495
532:そういう使い方はしないけど、引数では使うこともある。 たとえば、JDBCとか。
533:デフォルトの名無しさん
18/09/21 17:19:21.04 .net
98....77...120...20
ある問題がわからないのですが
上の文字列のピリオドを
削除して
残った。
98 77 120 20を
それぞれ100以下かどうか調べる方法
ヒントでもいいので下さい。
m(._.)m
534:デフォルトの名無しさん
18/09/21 17:29:20.71 QS43/Izx0.net
split だな
535:デフォルトの名無しさん
18/09/21 19:56:01.32 .net
ありがとうございます
問題はまだ先がありますが
勢いで行けそうです。
536:デフォルトの名無しさん
18/09/21 23:40:27.64 m8DL5ZJ40.net
98....77...120...20
まず、連続するドットを、1つのドットに変換する。
98.77.120.20
ドットで、split
537:デフォルトの名無しさん
18/09/22 03:00:12.86 ezjvT9yw0.net
Stream 使うとこんなの出来るんだよね。
URLリンク(paiza.io)
538:デフォルトの名無しさん
18/09/22 03:13:39.53 ezjvT9yw0.net
Kotlin でも似たような感じにできる。
URLリンク(paiza.io)
539:デフォルトの名無しさん
18/09/22 10:45:54.03 Mt4kWzpZ0.net
KotlinのString.splitは引数Stringを受け付けないのか。
Javaの方はPatternを受け付けないし。
どっちもオーバーロードで済む話だと思うのに。
無駄にメソッドの数を増やしたくないとかあるのかな。
540:デフォルトの名無しさん
18/09/22 16:47:30.75 iewBY6fOa.net
jbossのEJBってのが全然わかりません。
541:デフォルトの名無しさん
18/09/22 16:55:17.83 iewBY6fOa.net
Tomcatにちょっと毛が生えたのがEJBなんだろうな。
542:デフォルトの名無しさん
18/09/22 17:28:31.88 iewBY6fOa.net
Spring FrameWorkとEJB使ったらどんなイメージなんだ?
543:デフォルトの名無しさん
18/09/22 18:18:39.84 ezjvT9yw0.net
>>515
KotlinのString#split()は引数がStringのやつとRegexのやつがあって、ただの文字列の一致で分割したい場合はStringのやつを使い正規表現のパターンとの一致で分割したい場合はRegexの方を使う。
544:デフォルトの名無しさん
18/09/22 18:32:14.34 ezjvT9yw0.net
Charのやつもあった。
URLリンク(kotlinlang.org)
しかしJavaのやつを拡張してあって引数が多いのだがデフォルト値がセットされているので呼び出し時の記述に全ての引数は必要ない。
今回上のソースで使用したRegexを受け付けるsplitももう一つlimitが引数として存在しているがデフォルトのままで良いので呼び出す所では省略している。
545:デフォルトの名無しさん
18/09/22 19:57:13.70 UaEFgueIF.net
元ファイルをgzip形式で圧縮したファイルを、更にzipで複数個アーカイブしたファイルを扱ってます
今はzipファイルを全て展開→展開された圧縮ファイルを一つずつgzipで伸長、として処理してるのですが
扱いづらいので改良したいです
zipファイルの全ファイルの内容をbyte[][]に入れるメソッドとか、gzip+zipなアーカイブを
展開してリストにいれてくれるメソッドとか、ありませんか?
546:デフォルトの名無しさん
18/09/22 20:02:32.77 ns5EK8b00.net
誰も答えいる奴いないな、下らんスレだ。
547:デフォルトの名無しさん
18/09/22 20:04:45.28 PGp2AKzL0.net
そんなもんシェルで書いたら一瞬で終わるからな
いちいち手間かけてjavaで書く必要性がまずない
548:デフォルトの名無しさん
18/09/22 20:28:28.82 ffP877J7M.net
LocalDateTimeクラス使ってAPIリファレンスの読み方学んでるんだけど、5ヶ月後をint型で出すには
LocalDateTime.now()
549:;で現在月時刻を取得 .getMonth();でMonth型に変換 .plus(5).getValue();でInt型に変換 LocalDateTime.of();で代入 って手順しかないですよね? getMonthValue() + 5では12月から1月に以降してくれなくて驚き桃の木でした。
550:デフォルトの名無しさん
18/09/22 20:42:31.51 J+cgHaTV0.net
>>524
LocalDateTime.now().plusMonths(5).getMonth().getValue()
551:デフォルトの名無しさん
18/09/22 20:44:59.08 PGp2AKzL0.net
URLリンク(ideone.com)
コレで普通に5か月後になる
LocalDateTime local_date_time_5 = LocalDateTime.now(ZoneId.of("Asia/Tokyo")).plusMonths(5);
552:デフォルトの名無しさん
18/09/22 21:10:45.88 PIBZ6Tp/0.net
>>526
そんな簡単にできたのね…
というか上の方法だと年が変わってくれないか。
ありがとうございます
553:デフォルトの名無しさん
18/09/24 22:25:30.46 mjd+cxSud.net
参照型のキャスト変換とかのあたりめんどくさい……
頭がこんがらがる
554:デフォルトの名無しさん
18/09/24 23:00:37.68 .net
パイザのcランク問題で挫折しそう。
555:デフォルトの名無しさん
18/09/25 17:00:11.67 RXd3mBE5d.net
ZipInputStreamでzipファイルを展開した場合等、複数のファイルを扱う際のclose()の仕方についてどうするとよいか教えてください。
以下の様なソースを作ってます。zipファイルの内容物を展開していくものです。
ZipInputStream zis = null;
FileOutputStream fos = null;
try {
zis = new ZipInputStream(new FileInputStream(zipFileName)); // <-
for (ZipEntry entry = zis.getNextEntry(); entry != null; entry = zis.getNextEntry()){
extFileName = entry.getName();
fos = new FileOutputStream(extFileName); // <-
while ((len = zis.read(zbuff)) != -1){
fos.write(zbuff, 0, len);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
zis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
このようにソース中で複数のファイルへアクセスする場合、そのclose()はfinally句中でまとめてcloseする書き方でよいのでしょうか。
それとも、上記例でのfosをnewする時点でfos用のtry句を設け、fosのExceptionはそちらで処理すべきでしょうか。
fosのストリーム作成時にIOExceptionが発生したとき、finally句内のfos.close()で更に例外が発生しそうですが
それは仕方ないとすべきか、それともファイルごとにIOExceptionを処理するべきかを知りたいです。
556:デフォルトの名無しさん
18/09/25 17:16:21.33 Mw8jC0Zda.net
一般論だけど俺だったらファイルごとのループ内でtryブロック書くかな。
その方がエラーが起きた時の後始末(例えばエラーが起きたファイルのリストを表示するとか)がやりやすいし、
finallyの中にさらにtryを書くとコードの見通しが悪いから。
まあ要件次第ではある。
557:デフォルトの名無しさん
18/09/25 18:59:14.57 tj3tpCzGd.net
531と同意見
あと try-with-resourcesでググると幸せになれるぞ
open/close理解したいならゴメンだが
558:デフォルトの名無しさん
18/09/25 20:01:10.13 RXd3mBE5d.net
>>531
>>532
意見ありがとうございます
個別にtryする方向で見直そうと思います
try-with-resourceは良さそうですが、tryするタイミングが違うので、どう使えるかな?と思いつつですが、こちらも調べて考えます
559:デフォルトの名無しさん
18/09/26 18:42:57.71 .net
すいません、初歩的な質問なんですが
自分の期待では下のコードで
ああああ
あああ
ああ
あ
となるつもりなんですが
どうして
ああああ
ああああ
ああああ
ああああ
ってなってちゃうんでしょうか?
教えて下さい。
for( int mb = 0 ; mb < 5 ; mb++){
for ( int mc = 1 ; mc < 5 ; mc++){
System.out.print("�
560:"); } System.out.println("") }; }
561:デフォルトの名無しさん
18/09/26 18:45:49.63 .net
訂正です。
for( int mb = 0 ; mb < 5 ; mb++){
for ( int mc = 1 ; mc < 5 ; mc++){
System.out.print("あ");
}
System.out.println("")
}
562:デフォルトの名無しさん
18/09/26 18:51:32.43 749GKFIC0.net
>>535
毎回mcが1~4まで繰り返すから
ヒントは
mc = 1なら「ああああ」が4回になる
mc = 2なら「あああ」が4回になる
563:デフォルトの名無しさん
18/09/26 19:03:07.25 .net
そうか。mc++があるから
mcが1足されてると思ってましたが
毎回、mc=0になってるんですね。
ありがとうございます。
564:デフォルトの名無しさん
18/09/26 19:08:14.30 MrbR9bENa.net
>>534
内側のループは毎回ループする回数が変わる必要があるよな。
最初は4回、2回目はは3回、という具合にループ回数が減っていく必要がある。
ところが今のそのプログラムだと毎回必ず4回ループになる。
これをなんとかして最初は4回、次は3回と言う具合に変化させるようにする。
もうなんとなくわかると思うが、例えば内側のループのforの条件部分を mc < 5 ではなく mc < (5 - mb) にするとできる。
他の方法でもできるが、とにかくループ回数が同じように減りさえすれば良い。
565:デフォルトの名無しさん
18/09/26 19:10:21.86 .net
ありがとうございます!
なんとなく見えてきました
がんばってみます!
566:デフォルトの名無しさん
18/09/26 19:16:18.14 .net
うまくいきました
ありがとうございました!
センスがあったらアドバイスなくても
自分で気がつくんだろうな・・・・
567:デフォルトの名無しさん
18/09/26 19:35:25.46 HSqf+3eD0.net
7以降なら、zip扱う時はnio.FileSystem使えばラク。
6以前なら、apacheからソースとってきてそれパクれば良いw
568:デフォルトの名無しさん
18/09/26 19:42:17.68 MMLyhqjfd.net
ファイルの内容を読み、byte[]のListで返すメソッドcreateFListを作ったのですが、
戻ってきたリストの中身を順次見ていくと、最後にリストに入れたファイルBの内容しか表示されません。
FileInputStreamで得た結果ではなく、ただのbyte[]の配列をaddすると、期待通り順次内容を参照できてます。
ファイルの内容をListに入れる方法を教えてください。
public static void main(String[] args) {
List<byte[]> fList = new ArrayList<byte[]>();
fList = createFList();
for (Iterator<byte[]> iterator = fList.iterator(); iterator.hasNext();){
byte[] bw = iterator.next();
System.out.printf("%c%c%c\n", bw[0], bw[1], bw[2]); // /ファイルBの先頭3文字が2回表示される
}
}
private static List<byte[]> createFList(){
List<byte[]> fList = new ArrayList<byte[]>();
FileInputStream fis = null;
byte[] fbyte = new byte[1024];
try {
fis = new FileInputStream("ファイルA");
fis.read(fbyte);
fList.add(fbyte); // ファイルAの内容をリストに追加
fis.close();
fis = new FileInputStream("ファイルB");
fis.read(fbyte);
fList.add(fbyte); // ファイルBの内容をリストに追加
fis.close();
} catch (Exception e){
e.printStackTrace();
}
return fList;
}
569:デフォルトの名無しさん
18/09/26 19:46:59.75 zkJaWWrba.net
全部間違ってる
悪いけどモノ作るレベルじゃないからまずはもうちょっと我慢して入門書を読み進めなさい
570:デフォルトの名無しさん
18/09/26 20:52:07.36 MrbR9bENa.net
>>542
fbyte は同じやつ使い回してるからだよ。ファイルごとにnewして作らないと同じ所に上書きされてしまうのでダメ。
それとmain()の最初の new ArrayList<byte[]>() は無駄だ。なぜならその直後に fList = createFList() をしていて元の fList への参照は捨てられてしまうからだ。
571:デフォルトの名無しさん
18/09/28 14:58:57.32 61hLEuChM.net
List Map覚えたての雑魚です
"あ"~"お"、"か"~"こ"...を追加した別々のArrayList
"あ行"~"ん行"を追加したArrayList
を作る
HashMapで関連付ける
あ行キーを指定したら"あ"~"お"が取得される、というプログラム組もうとしたんだけど、
List<String> aiueo = new ArrayList<>();
List<String> kaiueo = new ArrayList<>();
List<String> lineA_N = new ArrayList<>();
Map<List, List> map = new HashMap<>();
aiueo.add("あ"); ... aiueo.add("お");
kaiueo.add("か"); ... kaiueo.add("こ");
lineA_N.add("あ行"); ... lineA_N.add ("ん行");
map.put(lineA_N.subList(0, 1), aiueo);
map.put(lineA_N.subList(1, 2), kaiueo);
のようにsubList(i, i)を使って関連付ける以外の方法が浮かばなかったのですが、もっと綺麗な方法があったりしますか?
572:デフォルトの名無しさん
18/09/28 16:19:23.91 z3tO4nEA0.net
>>545
MapのキーはStringでいんじゃない?
こんな感じで
URLリンク(paiza.io)
573:デフォルトの名無しさん
18/09/28 16:50:58.08 z3tO4nEA0.net
>>542
配列は参照型だから同じ配列を参照しちゃってる、コピっちゃえばいいよ
URLリンク(paiza.io)
574:デフォルトの名無しさん
18/09/28 17:16:37.68 z3tO4nEA0.net
>>542
こういう書き方もできるよ
URLリンク(paiza.io)
575:デフォルトの名無しさん
18/09/28 17:24:29.50 JZTmLHqA0.net
コピるより、別変数にするか再初期化する方がええやろ。
576:デフォルトの名無しさん
18/09/28 17:36:33.22 JZTmLHqA0.net
ごめん。勘違いしてた。
577:デフォルトの名無しさん
18/09/29 05:43:52.29 q2F+AH0R0.net
>>545
こんなのはどうだ?
URLリンク(paiza.io)
578:デフォルトの名無しさん
18/09/29 08:09:09.74 uDDRPkb/M.net
>>546
>>551
String型でまとめる手もあるのですね
ただ、後で追加していきたい、という場合はListにした方が扱いやすいですよね?
579:デフォルトの名無しさん
18/09/29 11:08:11.08 UEYQCClq0.net
おしえて下さい
String line ="1 2 3 4 g10 6 7";
String[] list = line.split(" |g10");
スペースとg10でlineを分割して配列に入れて
1 2 3 4 6 7
にしたいのですが
1 2 3 4 6 7
みたいに
4と6の間に空白の要素が入ってしまいます。
どうすれば
1 2 3 4 6 7
に出来るか教えて下さい。
580:デフォルトの名無しさん
18/09/29 11:10:01.56 .net
すいません訂正です
String line ="1 2 3 4 g10 6 7";
String[] list = line.split(" |g10");
スペースとg10でlineを分割して配列に入れて
1 2 3 4 6 7
にしたいのですが
1 2 3 4 空白要素 6 7
みたいに
4と6の間に空白の要素が入ってしまいます。
どうすれば
1 2 3 4 6 7
に出来るか教えて下さい。
581:デフォルトの名無しさん
18/09/29 11:24:17.71 JVLIweBX0.net
>>552
マップのキーは不変にするのがセオリーだよ
マップに存在するキーを変えちゃうとハッシュ値とかイコールの結果が
変わっちゃうからマップの動作は保証されないっす
キーをコレクションにする必要があるケースってどんなケース?
582:デフォルトの名無しさん
18/09/29 11:32:34.91 JVLIweBX0.net
>>554
できた!
String[] list = line.split(" g10 | ");
583:デフォルトの名無しさん
18/09/29 11:36:49.65 .net
>>556
ありがとうございます!
答えを聞けば
あーそういう事か・・・
て感じですね、
584:デフォルトの名無しさん
18/09/29 16:05:20.80 uDDRPkb/M.net
>>555
ほーそうなんですね、勉強になりました
例えばパッケージとクラス、クラスとコンストラクタ、クラスとメソッドでMap作るとしたら、それぞれをListでまとめた方が管理しやすそうだなぁと。
585:デフォルトの名無しさん
18/09/29 17:00:45.25 JVLIweBX0.net
>>558
パッケージとクラスは
1つのパッケージに複数のクラスが存在するっって
関係だからキーをリストにしたい理由がよくわからない
こういうキーのリストが欲しいわけじゃなく?
URLリンク(paiza.io)
586:デフォルトの名無しさん
18/09/29 23:05:55.82 uDDRPkb/M.net
>>559
パッケージをListにする必要はないと思いますが、
パッケージjava.utilとクラス一覧
クラスjava.util.Dateとメソッド一覧
…書いてたら確かにキーはListにする必要なかった。
ありがとうございます。
587:デフォルトの名無しさん
18/09/30 00:37:07.97 KPqVv5wd0.net
>>554
こんなのでもできる。これの場合は空白は1文字以上なら何文字でも良い。
String[] list = line.split("\\s+(g10\\s+)?");
ま、正規表現のパターンをどうするかの問題だな。
588:デフォルトの名無しさん
18/09/30 21:24:58.06 OqFePz/nd.net
わかんねー。
難しい
589:デフォルトの名無しさん
18/10/01 11:44:20.66 HXCGmwtoM.net
すっきりシリーズ実践編7章の練習問題なのですが、突然showMemory();というのが出てきて入力してもエラーになります。
ググっても出てこないのですが、これはいったいなんですか?
590:デフォルトの名無しさん
18/10/01 13:41:26.81 uzbdAfRPM.net
>>563
ググってだめなら
なぜハゲらないんだ?
591:デフォルトの名無しさん
18/10/01 17:20:14.70 0G+l/MVn0.net
>>563
著者か出版社にメールしろ
592:デフォルトの名無しさん
18/10/02 18:03:42.82 hoDCY76ca.net
>>563
なんですかと言われてもその本のどこかに書いてあると思う
593:デフォルトの名無しさん
18/10/03 11:00:45.93 gJy1D1hJ0.net
>>521
Linux でのやり方
zip形式の、archive ファイルを解凍する
unzip archive.zip
gunzipコマンドは、gzip形式とcompress形式の、圧縮ファイルを解凍する。
-r で、そのディレクトリ内の、すべての圧縮ファイルを解凍する
gunzip -r ディレクトリ名
594:デフォルトの名無しさん
18/10/03 11:57:09.38 gJy1D1hJ0.net
>>563
意味のわからない練習問題なんか、無視すれば?
時間の無駄
595:デフォルトの名無しさん
18/10/03 14:57:43.46 9+VVYKLPd.net
難しい
596:デフォルトの名無しさん
18/10/03 15:53:09.08 daSHmcx9M.net
クラス分割せず変数に代入してってやつしかできない
複数クラスに分けて引数渡してってやつのやり方がわからないよママン
引数がない場合は◯◯を表示するプログラムを作りなさいとかいう練習問題を出されてるんですが
意味がよくわかりません
引数なかったらコンパイルできないじゃないですか
597:デフォルトの名無しさん
18/10/03 16:00:58.28 daSHmcx9M.net
よくわかんないけどsetうんたらとかgetうんたらを使えばいいの?
598:デフォルトの名無しさん
18/10/03 16:05:11.87 K7uCuHqGM.net
>>570
何言ってるのかわかんないから問題全文転載して
599:デフォルトの名無しさん
18/10/03 16:16:07.98 daSHmcx9M.net
◯◯日後の日付と曜日を表示しましょう
引数に◯◯日後の◯◯を設定その日付y/M/dと曜日を表示
100日後なら100を受け渡し?
引数がない場合はシステム日付を出してくださいっての
俺もよくわかってない
int型の変数Xに100を代入して
100日後は2019/01/11/金です
と表示するだけなら
みたいなやり方でクラスが1個しかないようなプログラムなら本を参照してやっとこさ
できたんだけど
引数のことが全然わからないので困ってます
600:デフォルトの名無しさん
18/10/03 16:21:17.36 9+VVYKLPd.net
>>573
問題ってどこで
もらってるの?
601:デフォルトの名無しさん
18/10/03 16:32:27.87 daSHmcx9M.net
引数ってルールがややこしくてよくわからないのでmainメソッドで用意した変数でやっちゃってます
602:デフォルトの名無しさん
18/10/03 16:49:04.16 daSHmcx9M.net
mainから 引数(50) を渡して50日後の日付を出すのは出来たんですけど
引数がない場合っていう問題の意味がよくわかんなくて
渡す引数のカッコの中になにもなかったらエラーになって動かないじゃないすか
603:デフォルトの名無しさん
18/10/03 17:16:08.08 SKbAf1Wk0.net
これで解決
URLリンク(www.javadrive.jp)
604:デフォルトの名無しさん
18/10/03 20:47:47.84 3B507mk50.net
>>573
引数取らないメソッド作るだけっしょ
605:デフォルトの名無しさん
18/10/04 03:42:19.04 9/syaOEb0.net
>>573
その引数って実行時のコマンドラインで渡す引数のこと?
もしそうなら main() に渡される String の配列だよ。
606:デフォルトの名無しさん
18/10/04 04:32:34.81 FXwcGLCc0.net
「java コマンドライン引数」で検索!
607:デフォルトの名無しさん
18/10/09 17:05:00.58 pvyGknIYM.net
SwingのJTreeで表示される内容をソートしたいのですが、一般的な方法はあるのでしょうか?
ユーザーがデータを登録してJTreeに表示されるようにするのですが、今の知識で出来るのが
登録されるデータをリストにして、登録を行う際にリスト自体をソート→JTree再生成
なんですが、
JTree自体を簡単にソートする機能などはありますか?
608:デフォルトの名無しさん
18/10/13 21:42:43.90 iFv8AOW0d.net
switch文のcase部分で正規表現は使えない感じですかね
609:デフォルトの名無しさん
18/10/13 23:10:37.09 L
610:RaeBfZM.net
611:デフォルトの名無しさん
18/10/14 00:49:24.63 rKkXAekW0.net
たとえあっても結局は if で一つづつ調べていくのと同じコードに展開されるだけだろうから見た目が分かりやすくなるという以上の意味はないと思う。
612:デフォルトの名無しさん
18/10/14 09:56:40.69 ROu9whYDd.net
なるほど、わかりました
613:デフォルトの名無しさん
18/10/14 10:13:31.10 r97sA0Aya.net
>>584
正規表現リテラルが言語に組み込まれているなら、コンパイラが頑張れば
1パスで全てのcaseの正規表現をテストするステートマシンを生成することは普通に可能でしょ
614:デフォルトの名無しさん
18/10/14 11:35:15.37 3YFeE/uw0.net
数値型とか文字列型だと排他性が保証されてる、
例えばその数値が0であれば、その数値は0以外のあらゆる数字ではない事は自明なわけだけど、
正規表現だと、ある正規表現にマッチする文字列が
他の正規表現にマッチしない事は必ずしも自明ではないから switch とは馴染まないんじゃないかね?
615:デフォルトの名無しさん
18/10/15 11:06:57.69 eGRIdNe6a.net
そう。上から順番にマッチするかを調べて行ってマッチした所から実行するというコードにしかできないので if で書いたのとほぼ同じにしかできない。
違いはbreakがなければ下に抜けるところぐらいかな。
616:デフォルトの名無しさん
18/10/15 20:02:25.84 .net
ギンギラギンにさりげなくー♪
617:デフォルトの名無しさん
18/10/16 09:16:47.63 LIpnDMBF0.net
javaってクロスプラットフォームだからどのosでも実行できる!!
って言うけど他の言語も実行できるよね?
どこが違うの?
618:デフォルトの名無しさん
18/10/16 10:32:57.81 hibLU9vcd.net
コンパイルでできるファイルが各OS専用か、そうじゃないかみたいな感じじゃなかったっけ
619:デフォルトの名無しさん
18/10/16 10:38:15.43 .net
javaをネガキャンするなー!
620:デフォルトの名無しさん
18/10/16 12:28:26.08 2ObsWyDna.net
それ20年前の売り文句だからな
当時としては多分プラットフォーム間の互換性で抜きん出てたんじゃないの、知らんけど
621:デフォルトの名無しさん
18/10/16 12:59:45.83 iEAeFl+H0.net
>>590
他のは各OS用に再ビルドが要る
最近はC#もいける場合が多いが
バイナリ互換でGUIまでできるのは未だにJavaだけ
622:デフォルトの名無しさん
18/10/16 13:11:22.61 0QUQFWONa.net
仮想マシン上で動くからコンパイルしてバイナリを作ればそのバイナリを他のマシンの仮想マシン上で同じように動かせるということ。
ただし現実はOS毎の仮想マシンに違うバグがあったりして中々うまくいかなかったりする。
それとプログラム作る側も気を付けてないとうまく行かない事がある。例えばファイルのディレクトリの区切り文字がUNIX系OSとWindowsでは違うとかね。
そういう違いを考慮して作れるようにはなっているが考慮しないプログラムも作れるようになっている。
623:デフォルトの名無しさん
18/10/17 11:21:17.67 5AnSWZbJa.net
そもそもpythonだのRubyだのは各OSごとにコンパイルという概念がないから、
そこらへんが当たり前になった今ではいまいちピンとこないのも無理はない
624:デフォルトの名無しさん
18/10/17 12:08:39.22 TU0+elbq0.net
同じjavaでもバイトコードコンパイルしたバージョンが違うと呼び出し失敗するとかな
625:デフォルトの名無しさん
18/10/17 12:30:38.33 tHw/Qu/EM.net
>>594
それは間違い
JavaはJREが正式に廃止されたから、今月からはクライアントアプリについては
各プラットフォームに向けて個別にランタイムを同梱したパッケージをビルドする必要がある
626:デフォルトの名無しさん
18/10/17 12:46:57.34 8efdFbKLa.net
>>596
内
627:部的には似たようなもんだよな。Perlも実行時に素早く中間コードにコンパイルしてから実行してるし。
628:デフォルトの名無しさん
18/10/17 16:58:25.10 8mlz8GGc0.net
$ ./Hage.java
Hello, ハゲ!
629:デフォルトの名無しさん
18/10/18 20:24:57.59 .net
パイザのBランクになれました。
630:デフォルトの名無しさん
18/10/18 21:36:17.32 CSkK3ONp0.net
あー。あの問題解くやつか。そういやこの頃やってなくてすっかり忘れてたが今見たら俺もBだった。
トロフィー3つだって。
631:デフォルトの名無しさん
18/10/18 23:09:40.13 8EKXnxGLa.net
ほんの数日前にJavaの勉強を始めたものです
自宅PCでも環境を整えようとJDK11とかいうものを入れてからEclipseをインストールしたのですが動きません
上のレスを少し読んだところJREが廃止されたと聞きました(たしかに本の解説と違ってJDKインストール時にJRE云々がありませんでした)
学校もEclipseなので使えないと本当に困るのですが私はどうすればよいのでしょうか?
632:デフォルトの名無しさん
18/10/18 23:26:55.18 r8wg0Ock0.net
>>603
本に書いてあるのか学校と同じバージョンでやればいい
633:デフォルトの名無しさん
18/10/18 23:54:35.05 8EKXnxGLa.net
>>604
ありがとうございます
学校は8だったのでとりあえず11アンインストールしてそのようにしたらなんとかなりました(アンインストールもレジストリのあれこれですぐには出来なくて苦労しましたが)
ググったら結構深刻な問題なんですね
とりあえず今はどうにかなりましたが今後が心配です
634:デフォルトの名無しさん
18/10/19 00:28:28.89 UgWipG/ea.net
Java8入れたなら今後重大な脆弱性が見つかってもパッチが提供されない可能性があるから、
今や存在そのものがセキュリティホールであるJavaアプレットは必ず無効にしておくこと
あと今月からは開発以外の用途で使ったら(Java製の5chブラウザとか)ライセンス違反だから注意ね
635:デフォルトの名無しさん
18/10/19 00:53:41.40 9Ye0KfSK0.net
paizaよりAtCoderの方がいいぞ
636:デフォルトの名無しさん
18/10/19 23:40:19.01 QtXhI67L0.net
あー。サウジの件は経済的にも影響があるからWBSでも報道することになったか。
637:デフォルトの名無しさん
18/10/19 23:40:43.25 QtXhI67L0.net
ごめん。誤爆。実況に書いてるつもりでここに書いちゃった。w
638:デフォルトの名無しさん
18/10/20 00:54:54.45 .net
俺はお前を許す
639:デフォルトの名無しさん
18/10/20 20:52:13.49 7w/MX7TC0.net
ブリッジパターンについてのこのヤフーブロはこのページからおもろいし、ためになるわ。
URLリンク(blogs.yahoo.co.jp)
640:デフォルトの名無しさん
18/10/20 22:48:08.58 wp9EeO+Ya.net
Javaのデザインパターンの解説なんか腐るほどあるのによりによってなぜこんなバカっぽいのをチョイスしたのか
本人乙?
641:デフォルトの名無しさん
18/10/21 10:29:55.80 iKutjjfua.net
何このゴミ記事は
晒し上げのつもりなん?
642:デフォルトの名無しさん
18/10/21 12:40:49.44 .net
不細工なコードしか書けない。
(涙)
643:デフォルトの名無しさん
18/10/21 14:07:53.47 2oCbSQP00.net
デザパタどころか継承も使ってないうちのシステム
共通化もなく同じコードを数百のソースにベタ書きしてるんだけど
目眩がするわ…
644:デフォルトの名無しさん
18/10/21 17:19:25.72 6w48E+U+M.net
よくわかってないけど
転職の面接で継承じゃなく委譲だ!
645:デフォルトの名無しさん
18/10/21 17:20:57.22 6w48E+U+M.net
と力説しまくれば受かりますか?
みんなあまりできる人いなそうなら面接官にもつっこまれないかな。
646:デフォルトの名無しさん
18/10/21 17:22:05.37 6w48E+U+M.net
理解してない面接官のプライドもあるから
よし、君は合
647:格!となることを期待して
648:デフォルトの名無しさん
18/10/21 17:28:03.33 SPKWiuHwd.net
Java固有じゃないかもですが質問させて下さい
(x==1|x==3|x==100)
みたいに左辺が同じ論理式って簡略化して表記する方法ありますか?
649:デフォルトの名無しさん
18/10/21 17:28:07.59 TsGKjBTxa.net
使えない奴が入る率が高過ぎたら、そいつの責任になるから、流石にそれなりに勉強してると思うぞ。。。
少なくとも中小は人事なんて無いから、開発責任者とかが面接官する。
大企業も1人くらい分かる奴を面接官に入れるだろ。
ろくな面接官がいないのは派遣会社くらいじゃ無いか?
百歩譲って入れたとして、使い物にならなかったら陰湿なイジメが待ってるぞ。(経験者談)
650:デフォルトの名無しさん
18/10/21 17:30:21.04 PQvzxFzPM.net
>>615
レベルの低い現場で継承使ってると最悪だぞ(俺はレベルに関わらず全ての実装継承はクソだと思ってるが)
全部ベタ書きの方が遥かにマシ
651:デフォルトの名無しさん
18/10/21 18:16:07.43 3Lw0xmRE0.net
>>619
こういう書き方なら時々やる
List.of(1, 3, 10).contains(x)
Stream.of(1, 3, 100).anyMatch(i -> i == x)
652:デフォルトの名無しさん
18/10/21 18:20:52.15 SPKWiuHwd.net
>>622
なるほど、配列を自分で定義したりするよりはスマートな感じですね
有り難うございます
653:
18/10/21 18:45:27.07 gNVlu9Yw0.net
>>616
>継承じゃなく委譲
最近、この問題はコンストラクタの記述能力に依存することがわかってきました
継承を使う場合、Java のコンストラクタで書ける内容が C++ のコンストラクタでは書けない、ならばおしなべて委譲にするしかない、と
654:デフォルトの名無しさん
18/10/21 19:45:35.27 0dWokXAIa.net
>>619
swith使えばいいのでは?
swithはbreakさせなければ下に抜けるからな。
switch (x) {
case 1:
case 3:
case 10:
System.out.println(x);
}
なんていう風に書いとくとxが 1, 3, 10 の時だけ出力するよ。
655:デフォルトの名無しさん
18/10/21 23:36:03.78 2oCbSQP00.net
>>620
大手ユー子に転職したけど面接のときに技術わかるやつ一人もいなかったぞ
現場離れた部長と人事だけ
Javaほとんど出来ないけどあっさり採用されてしまったわ
独立中小の方が職人多かったよ
656:デフォルトの名無しさん
18/10/21 23:48:18.28 SPKWiuHwd.net
>>625
冗長になりそうでswitchは敬遠してましたが意外と視読性良さそうですね
有り難うございます
657:デフォルトの名無しさん
18/10/22 04:20:27.70 UcRlErit0.net
bronze取ったら現場探したほうがええんか?
未熟さで迷惑かけて対人ストレスとか抱えるくらいならsilverくらい取ってからにしようかと思うんだけど
いやまぁ資格と現場で使えるかが別物ってのはとりあえず置いといてよ
658:名無しさん@そうだ選挙に行こう! Go to vote!
18/10/22 08:37:05.02 gS6quPUmM.net
bronzeは「わたしはjavaができません」と申告してるようなもんだから
書かないほうがよいのでは?w
659:名無しさん@そうだ選挙に行こう! Go to vote!
18/10/22 10:01:40.15 3rTgJh0aa.net
>>626
現場離れた部長が技術分かる奴なんじゃないの?
別に特定の言語を知らなくても何か一つ言語使えてれば、他の言語の文法覚えるだけで即戦力(扱い)だし。
本当に未経験でも結果的に使える奴になれば良いけどね。
660:デフォルトの名無しさん
18/10/22 12:21:35.68 .net
abcdeの末尾がeならokと出力したいのですが
↓では期待通りにならないのですが
どうしたら上手くいくか教えて下さい。
String word= "abcde";
if(word.matches("e$"))System.out.println("ok");
661:デフォルトの名無しさん
18/10/22 12:24:08.82 mTnahwQV0.net
/.*?e$/
とかかな
662:デフォルトの名無しさん
18/10/22 12:43:07.54 DMneX9TO0.net
これだと動くから、なんかはしょりすぎてるんでは?
String word = "abcde";
if (Pattern.compile("e$").matcher(word).find())
System.out.println("ok");
663:デフォルトの名無しさん
18/10/22 12:55:50.18 .net
ありがとうございます
修正して
if(word.matches(".+e$"))System.out.println("ok");
で期待通りになったんですが、
これでもいいのかな。
664:デフォルトの名無しさん
18/10/22 18:59:00.82 u6NjsIb00.net
Ruby でやったけど、文字列が、"e" だけの場合に「.+ .*」で違いがある
"e".match /.+e$/
#=> nil
"e".match /.*e$/
#=> "e"
665:デフォルトの名無しさん
18/10/22 19:08:12.53 8WYgXfgna.net
>>635
*は直前の文字が0文字以上で+は直前の文字が1文字以上なのでそうなって当然だと思う。
666:デフォルトの名無しさん
18/10/22 19:53:44.41 HK8Vf3a+0.net
あ*
あ+
覚えられたら楽しそう。
667:デフォルトの名無しさん
18/10/22 20:46:03.82 Ohiki0Rb0.net
式の評価順について教えてください
下記のプログラムで
カッコが先に処理されて
DECBAと出力されると予想したのですが
実際はABCDEと出力されました
これの仕様が書かれたドキュメントを教えてください
public static void main(String[] args) {
int[] a = new int[1];
a[getValue("A")] = getValue("B") + (getValue("C") + (getValue("D") + getValue("E")));
}
static int getValue(String s) {
System.out.println(s);
return 0;
}
668:デフォルトの名無しさん
18/10/22 21:48:42.82 zi5Z/69B0.net
普通に言語仕様読むのが一番早い。
英語読めるなら本家
URLリンク(docs.oracle.com)
古いのなら日本語版もある
URLリンク(www.y-adagio.com)
669:デフォルトの名無しさん
18/10/22 22:06:15.12 u6NjsIb00.net
>a[getValue("A")] = getValue("B") + (getValue("C") + (getValue("D") + getValue("E")));
(getValue("C") + (getValue("D") + getValue("E")));
これは、"C" + "D" + "E" → "CDE"
getValue("B") + "CDE" → "BCDE"
+ 演算子は単に、文字列の連結だろ
670:デフォルトの名無しさん
18/10/22 22:09:05.28 Ohiki0Rb0.net
>>639
それのどこに書いてあるのか教えて欲しいのです
671:デフォルトの名無しさん
18/10/22 22:09:45.42 Ohiki0Rb0.net
>>640
文字列は表示してるだけで戻り値はintですよ
672:デフォルトの名無しさん
18/10/22 22:24:12.06 zi5Z/69B0.net
>>641
英語の方ならExpressions、Evaluation Order、
日本語の方なら式、評価順序のあたりを読めばいいよ。
673:デフォルトの名無しさん
18/10/22 22:29:43.80 Ohiki0Rb0.net
>>643
ありがとうございます!ありました!
674:デフォルトの名無しさん
18/10/22 22:57:47.71 u6NjsIb00.net
ああ、文の評価順序を確かめたかったのか
たぶん左から評価して、その値を、( )の優先順位で足していくのだろう
a[0] = 0 + (0 + (0 + 0))
a[0] = 0 + (0 + 0)
a[0] = 0 + 0
a[0] = 0
これは、知っていないとマズイ。
漏れも、知らなかったけど
675:デフォルトの名無しさん
18/10/23 01:01:39.75 IQhrGGp+d.net
インクリメントの前置後置とかな
676:デフォルトの名無しさん
18/10/23 01:37:49.72 SDpmiZwh0.net
>>645
元の質問は括弧の中から計算していきそうなのにそうではなかったので仕様が知りたかったということだよ。
677:デフォルトの名無しさん
18/10/23 02:55:50.13 SDpmiZwh0.net
>>631
それ実際に実行されるのはこれだ。
java.util.regex.Pattern.compile("e$").matcher(word).matches()
最後の matches() は java.util.regex.Matcher クラスのメソッドだ。
ドキュメントには「領域全体をこのパターンとマッチします。」と書いてある。
全体とだ。つまりパターンには前後に隠された ^$ が最初から入っているような状態になる。
なので例えば word が "e" ならマッチするが e の前後に一文字でも何かあればマッチしない。
だから ".*e$" だとマッチする。(というか最後の $ は不要)
grep コマンドへ与えるパターンみたいにやりたい場合は Matcher クラスのインスタンスで find() したりするしかない。
678:デフォルトの名無しさん
18/10/23 07:18:01.29 e9JCNKc90.net
これでもOKかな。
if (word.endsWith("e"))
679:デフォルトの名無しさん
18/10/23 11:26:07.55 QwHjyvjPa.net
>>649
正規表現不要ならそっちの方が分かりやすいな。
680:デフォルトの名無しさん
18/10/23 12:28:50.46 .net
ありがとうございます
勉強になります。
681:デフォルトの名無しさん
18/10/24 02:19:49.67 2LYWqLo00.net
>>638
Ruby で以下を実行したら、ABCDE の順番になった
ary = [ ]
def getValue ( str )
puts str; 0
end
ary[ getValue("A") ] = getValue("B") + ( getValue("C") + ( getValue("D") + getValue("E") ) );
682:デフォルトの名無しさん
18/10/24 08:47:38.46 XKgg3tJUa.net
()は決して先に計算するという意味ではなく、結合の優先順位を変えるんだよ
a = (b + c) + f(x) は、=, +についてもそれぞれを引数2つの関数とみると
=(a, +(+(b, c), f(x))
というツリー構造になる
これをどういう順序で評価するかはいくつかやり方があるが、
Javaや糞Ruby糞を含む多くの言語では正格評価と呼ばれる方式が採用されており、これは外側の関数から内側の順に式を評価する
引数リスト中での評価順序は言語によって様々だが、Javaの場合は原則的に左から右の順に評価する
683:デフォルトの名無しさん
18/10/24 10:14:03.79 hDrHSdWT0.net
public class test {
static int n = 2;
public static void main(String[] args) {
System.out.println(getValue("A") * (getValue("B") + getValue("C")));
}
private static int getValue(String s) {
System.out.println(s);
n++;
System.out.println(n);
return n;
}
}
A
3
B
4
C
5
27
かっこの中が先に実行されていたら、5 * (3 + 4) = 35
684:デフォルトの名無しさん
18/10/24 11:58:03.23 yjyY64DY0.net
助けて下さい、パイザ恐怖症です。
685:デフォルトの名無しさん
18/10/24 12:14:05.89 wgd96425M.net
おっぱいざ
686:デフォルトの名無しさん
18/10/24 12:15:04.76 k2aW8IHEa.net
>>654
メソッドを呼んで値を取り出す順序とその後の計算順序が違うってことかな?
687:デフォルトの名無しさん
18/10/24 12:19:07.90 k2aW8IHEa.net
>>655
他を使えば?
688:デフォルトの名無しさん
18/10/24 17:24:32.96 SCI/Jnq1a.net
自分を信じている。
689:デフォルトの名無しさん
18/10/24 23:47:39.01 2LYWqLo00.net
paiza, codepad は、ログイン無しで書ける
評価順序・結合規則は、異なる概念
「式1 演算子 式2」がある時に、式内に何かの状態を変える副作用があるとか、
変数を共有していたりすると超危険!
バグる・勘違いする
690:デフォルトの名無しさん
18/10/25 00:00:58.67 Y/5d8Fwoa.net
頑張らなきゃ。
691:デフォルトの名無しさん
18/10/25 20:52:09.26 /sJHXbfH0.net
javaが有料になるのは本当ですか?
一体何が始まるんです?
692:デフォルトの名無しさん
18/10/25 22:48:53.55 NF5xn3mp0.net
終わりが始まるのじゃ
693:デフォルトの名無しさん
18/10/25 23:05:07.68 Vh4vLvlsM.net
四季に例えるなら今月からJavaワールドは秋に入った
オラクルにとっては実りの秋、つまり、いよいよ満を持して収穫の時期だ
成長は止まり、次第に終わりに近づいていく
694:デフォルトの名無しさん
18/10/25 23:05:48.73 8t/VvI+za.net
諸行無常
695:デフォルトの名無しさん
18/10/25 23:16:38.63 8t/VvI+za.net
まじ話、どうしたらいいのですか?
8月からJavaに絞ってプログラミング始めたけど
Javaという選択肢は間違ってたのかな。
696:
18/10/26 03:38:08.86 OsBjME340.net
>>666
間違っていませんよ
697:デフォルトの名無しさん
18/10/26 06:42:50.41 RF3v5pwza.net
信じます。
698:デフォルトの名無しさん
18/10/26 18:24:58.78 8x+zlsFp0.net
自分を鍛える。
699:デフォルトの名無しさん
18/10/26 21:56:08.51 c5tX/A9Y0.net
Javaは犠牲になったのだ…
ORACLEの買収から続く因縁…
その犠牲にな
700:デフォルトの名無しさん
18/10/27 00:26:26.42 f5VWw0O9d.net
ずいぶん勉強したな
まるでOracle博士だ
701:デフォルトの名無しさん
18/10/27 20:45:41.22 GFYQON7a0.net
難しい。
でも、頑張る
702:デフォルトの名無しさん
18/10/29 22:23:02.20 gfMerkhba.net
標準入力
0
1
で
sc.nextとかsc.nextIntとかで
0を読み込んで
また、読み込んだら
1になるけど
読み込んでも次の文字に移動しないで
0のまま読み込みできるような
方法ってありませんか?
703:デフォルトの名無しさん
18/10/30 09:54:01.25 xNl+FZA5a.net
プログラミングは面倒なものだ。
でも頑張る。
704:デフォルトの名無しさん
18/10/30 11:22:14.61 TktsfVtm0.net
プログラミング学習において一番やっちゃいけないこと
それはただやみくもに学習を続ける事
705:デフォルトの名無しさん
18/10/30 11:24:12.48 qIK5QusDd.net
ここにいる人が最初に何作ったか気になる
706:デフォルトの名無しさん
18/10/30 11:53:41.32 yLOLSFfea.net
高校生の頃に簡単なシューティングゲーム作った
707:デフォルトの名無しさん
18/10/30 12:30:56.41 8/9eZ6sC0.net
歴史年表をデータ化して
ランダム4択クイズみたいの作ってたなあ
当時はDBなんて知らないから
ソースにベタ書きだが
708:デフォルトの名無しさん
18/10/30 14:16:50.97 u5gp0FkU0.net
自動釣銭機のファームウェアだったわ
709:デフォルトの名無しさん
18/10/30 19:16:14.83 u4NMPEb2d.net
>>677
スッキリJavaの入門終わったくらいなんだけど、そこからだとどういう知識付けていったら作れるかな
フレームワークとかまだよくわかってなくて
710:デフォルトの名無しさん
18/10/30 19:53:26.35 yLOLSFfea.net
>>680
Javaではゲーム作ったことないからよく分からんけど、
Java ゲーム とかでググるとそれっぽい本がいくつか出てくるからそこらへんを適当に一冊選んで丸写ししてみればいいんじゃないかな
711:デフォルトの名無しさん
18/10/30 20:45:03.24 xkGCjv5u0.net
>>673
標準ライブラリには用意されてないんで自作する感じで
URLリンク(paiza.io)
712:デフォルトの名無しさん
18/10/30 21:34:59.67 29XJYIaEa.net
>>682
ご丁寧にありがとうございます
m(_ _)m
私はまだまだ勉強しなきゃいけない事が多いようですw
713:デフォルトの名無しさん
18/10/30 22:19:01.39 tLch1bmf0.net
YouTube にある、T Umezawa の動画が有名
【Java】ゲームプログラミング超入門
URLリンク(youtu.be)
Windows8.1とJava8の組み合わせによる最新版:URLリンク(youtu.be)
C#版: URLリンク(youtu.be)
次:URLリンク(youtu.be)
714:デフォルトの名無しさん
18/10/31 12:51:34.27 umCB7isma.net
最初に?というとこんなやつかな。
10 PRINT "*";
20 GOTO 10
715:デフォルトの名無しさん
18/10/31 15:52:18.08 P9zyHHGGM.net
*
*
*
*
*
*
*
*
*
*
BREAK AT 10
ロ
716:デフォルトの名無しさん
18/10/31 17:19:04.35 umCB7isma.net
マイコンの素晴らしさに感動。
これがあればなんでもできる。
と、本気で思った。
717:デフォルトの名無しさん
18/10/31 17:35:46.14 WYczTFcia.net
Javaがあれば何でも叶う!
718:デフォルトの名無しさん
18/10/31 17:38:20.63 WYczTFcia.net
Javaで夢が広がる!
719:デフォルトの名無しさん
18/11/03 16:41:01.50 5ctS1VyRa.net
才能ないけど頑張ってます。
720:デフォルトの名無しさん
18/11/04 11:32:46.08 hQdPSgHl0.net
ブリッジパターンの応用手順のブログみたい。パッケージを開発する時を前提にしているね。
URLリンク(blogs.yahoo.co.jp)
721:デフォルトの名無しさん
18/11/04 11:56:02.10 BezIGIRZa.net
定期的にクソ見辛いブログをステマしていくやつなんなの
722:デフォルトの名無しさん
18/11/04 13:56:16.32 66vK87J40.net
全くの未経験で転職先でjavaを使用するという事で学習していこうと思ってるんだけど
先にHTML、CSSからやっていかないとダメな感じ?
723:デフォルトの名無しさん
18/11/04 15:02:34.71 eEexL0w40.net
\ ∩─ー、
\/ ● 、_ `ヽ
/ \( ● ● |つ
| X_入__ノ ミ 俺は釣られないクマ ・・・
、 (_/ ノ
\___ノ゙
/ 丶' ⌒ヽ:::
/ ヽ / /:::
/ /へ ヘ/ /:::
/ \ ヾミ /|:::
(__/| \___ノ/:::
724:デフォルトの名無しさん
18/11/04 17:42:51.19 hcv1KEF/a.net
頑張ります!
725:デフォルトの名無しさん
18/11/04 23:00:14.19 l3etVQHq0.net
javascriptがjavaの仲間だと思っていた時期が俺にもありました…
726:デフォルトの名無しさん
18/11/05 09:00:32.02 SxXiYgd60.net
今でもそう思ってます
727:デフォルトの名無しさん
18/11/05 09:20:20.54 fSW0Oxfca.net
悔い改めよ
728:デフォルトの名無しさん
18/11/05 10:40:33.26 9O10s3S2d.net
むしろ今となってはjavascriptのほうが使いやすい
729:デフォルトの名無しさん
18/11/05 11:13:59.19 fSW0Oxfca.net
慣れの問題と何を作るかの問題だな。
730:デフォルトの名無しさん
18/11/05 11:22:08.13 /yhagSUO0.net
ブラウザと周辺ライブラリの進歩がデカイ
731:デフォルトの名無しさん
18/11/06 00:13:10.82 lOm/SiQT0.net
わからん。。。
嫌になる
でも、頑張る
732:デフォルトの名無しさん
18/11/11 21:19:15.74 ajreNdVSa.net
URLリンク(pastebin.com)
Stringのインデックスエラーが出るのですが、何かいけないのでしょうか?
733:デフォルトの名無しさん
18/11/11 21:22:14.23 B3f/927da.net
Java有料化で仕事無くなるかもなのに頑張るのか。。。
734:デフォルトの名無しさん
18/11/11 21:28:16.21 /etMYVvT0.net
無くなるの?
735:デフォルトの名無しさん
18/11/11 21:56:52.92 B3f/927da.net
Java有償化まとめ
スレリンク(tech板)
736:デフォルトの名無しさん
18/11/11 23:54:14.92 /c5AFHPv0.net
>>703
charIndexがリセットされないのがいけない
"123456"を表示するときにcharIndexは0から5に増えて
"7"を表示するときにcharIndexは5だからNG
737:デフォルトの名無しさん
18/11/12 19:49:08.82 x1RQowFZa.net
>>707
ありがとうございます。
breakの前にcharIndex=0を設定することでエラーは解消されました!
738:デフォルトの名無しさん
18/11/15 07:04:39.94 F2s/LBqta.net
同じ文字を含まないっていう正規表現があるなら教えて欲しいです。
例
マッチする
abc
acb
bac
bca
cab
cba
マッチしない
aab
cbc
739:デフォルトの名無しさん
18/11/15 07:19:32.06 xSjlziKZ0.net
>>709
ないです、素朴に数えましょう
740:デフォルトの名無しさん
18/11/15 07:27:10.15 AxNEuJ7Oa.net
そうですか残念です。
741:デフォルトの名無しさん
18/11/15 08:34:12.11 g74yzjtM0.net
Ruby なら、uniq で、配列内の重複した要素を削除できるから、それで文字数を数えて比較すれば?
split で1文字ずつ、配列の要素にする
str = "abca"
str.length #=> 4
str.split( "" ).uniq.length #=> 3
742:デフォルトの名無しさん
18/11/15 09:43:30.75 RDhHOc3na.net
>>709
同じ文字を含むなら (.).*\1 でできると思うので、プログラムの側でこれにマッチしないものを処理すれば良いのではないかな。
743:デフォルトの名無しさん
18/11/15 13:03:21.57 lNkjj0jra.net
>>709
重複要素の無いコレクション
URLリンク(docs.oracle.com)
>>712
Rubyならじゃねえ。
Javaに同じ機能無いかくらい調べやがれ。
こちとら10年くらいJava触ってねーぞ。
744:デフォルトの名無しさん
18/11/15 15:12:37.43 pPH/bz/I0.net
>>713
ありがとうございます。
参考にさせてもらって、その正規表現の効果をぐぐって見て
自分でもいけそうな気がしたのですが。
NGになってしまいます。
何が間違えてますか・・・
String a ="aac";
if(a.matches("(.).*\1")){
System.out.println("OK");
}else{
System.out.println("NG");
}
>>712
>>714
ありがとう、ございます。
それらとは別のやり方ですがヒントになりました。
特定の文字をAllreplaceで""にして原本とのlength()の差で
選別する感じでひとまずいけました。