Java入門・初心者質問スレ Part.8

■ このスレッドは過去ログ倉庫に格納されています
2018/06/07(木) 20:17:08.87ID:N8MsK2gr0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.7
http://mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2018/07/29(日) 20:45:44.14ID:ZNkzy5HU0
これを一番の参考にすべきでしょう。

プログラマー年収ランキング2017!言語別、第1位はScalaの626万円
https://jp.stanby.com/media/programming_ranking2017/
2018/07/30(月) 06:36:07.38ID:jE1kRg0J0
できれば、個人的にandoroidアプリを開発できるようになりたいと考えてます
その場合の学習進路として、、java→SQL→サーバーサイドって感じになりますか?
239デフォルトの名無しさん (ワッチョイ ceb6-30bb [111.90.3.63])
垢版 |
2018/07/30(月) 06:39:30.81ID:HJqNjAI+0
>>238
android勉強しなよ
2018/07/30(月) 06:48:22.59ID:rPrBkWVy0
>>238
koltin
241デフォルトの名無しさん (ワッチョイ ceb6-30bb [111.90.3.63])
垢版 |
2018/07/30(月) 06:50:55.04ID:HJqNjAI+0
プログラムは、順次、選択、繰返しで実装できることがわかってるんだから
if文とwhile文がわかったら十分
SQLもサーバサイドも必要になってから調べれば良い
androidの開発がしたいならandroidの実装の仕方を勉強しないと
2018/07/30(月) 07:04:17.38ID:EYjHLRR70
論理演算子の または〜って縦棒と変換して使うとエラー出るんですけど
なんて変換すればいいですか?
かつ(&&)は出るんですけど・・・
2018/07/30(月) 07:07:38.43ID:EYjHLRR70
すみません。逆でした

且(&&)はエラーでないんですけど
または(‖)と打つとエラーが出ます。
244デフォルトの名無しさん (ワッチョイ ceb6-30bb [111.90.3.63])
垢版 |
2018/07/30(月) 07:09:46.37ID:HJqNjAI+0
&&
||
245デフォルトの名無しさん (ワッチョイ ceb6-30bb [111.90.3.63])
垢版 |
2018/07/30(月) 07:12:39.54ID:HJqNjAI+0
文字が違う
2018/07/30(月) 07:15:16.17ID:EYjHLRR70
>>244
ありがとうございます。
コピーしたら使えるんですけど、なんて変換したら出るか教えて下さい
自分のパソコンだと’縦’で変換しても同じのが出ません><;
247デフォルトの名無しさん (ワッチョイ ceb6-30bb [111.90.3.63])
垢版 |
2018/07/30(月) 07:26:14.47ID:HJqNjAI+0
>>246
キー配列がJapaneseなら
Shift+\
で出るよ
2018/07/30(月) 07:29:21.70ID:EYjHLRR70
>>247
おかげさまでいけました!
ありがとうございます。
2018/07/30(月) 08:40:16.78ID:qnQc5JETM
>>241
Androidアプリ一個もリリースしたことなさそう
2018/07/30(月) 08:48:15.71ID:EokvRzKZ0
なんで記号を変換で打ってるんだろ?
そのもののキーあるのに
2018/07/30(月) 11:52:06.89ID:+mfJwdNa0
夏休み
252デフォルトの名無しさん (アウアウカー Saa7-2Ess [182.251.240.14])
垢版 |
2018/07/30(月) 11:56:24.86ID:kNimcJUea
スマホならわかるがPCは滅多に触らないので勝手がわからないのかも知れない
2018/07/30(月) 13:50:18.67ID:s9CMcrrz0
プログラミングの勉強について
制御や配列などの基本的な部分を理解したら

・ 深く考えずサンプルプログラムを打ちまくる
・ 時間をかけてサンプルプログラムをしっかり理解しながら進める

どっちが正解なのでしょうか?

javaの勉強の進め方は
クラスやオブジェクトを総覧しておいて
何を作るにはどのクラス、メソッドを組み合わせるか
という視点を中心として進めればいいのでしょうか?
2018/07/30(月) 13:59:05.70ID:EokvRzKZ0
優れたコードを沢山読んで理解
255デフォルトの名無しさん (アウアウカー Saa7-2Ess [182.251.240.14])
垢版 |
2018/07/30(月) 14:11:11.18ID:kNimcJUea
>>253
> ・ 時間をかけてサンプルプログラムをしっかり理解しながら進める

こっちだろうなやはり。

> javaの勉強の進め方は
> クラスやオブジェクトを総覧しておいて
> 何を作るにはどのクラス、メソッドを組み合わせるか
> という視点を中心として進めればいいのでしょうか?

そうだな。
それと逆引き辞典みたいな本があるといいかも。ネットで検索してもいいけどね。
2018/07/30(月) 15:27:50.75ID:s9CMcrrz0
ありがとうございます!
2018/07/30(月) 17:31:28.20ID:s9CMcrrz0
インスタンスの取得に関してなのですが、
自分で作成したクラスや、Overrideしたクラスは、インスタンスをnewで取得し
importして使うクラスに関しては、戻り値でインスタンスを取得するという感じなのでしょうか?
258デフォルトの名無しさん (アウアウカー Saa7-2Ess [182.251.240.6])
垢版 |
2018/07/30(月) 18:40:50.03ID:xHVHgAPAa
>>257
いやそれはどういう設計なのかによる。
まあしかしだいたいは new してインスタンス作ると思ってて良い。
259デフォルトの名無しさん (アウアウカー Saa7-2Ess [182.251.240.6])
垢版 |
2018/07/30(月) 18:41:40.34ID:xHVHgAPAa
import するかどうかは関係ない。
2018/07/30(月) 18:43:18.75ID:s9CMcrrz0
そうなのですね、ありがとうございます。
newしていないのに戻り値でオブジェクトが返されたりすると
コードを読んでいて混乱してきてしまってます
newされていない時に、リファレンスで戻り値を確認しながら読んでいきます。
いつもありがとうございます。
261デフォルトの名無しさん (ワッチョイ 47ba-30bb [118.86.134.4])
垢版 |
2018/07/30(月) 19:52:51.96ID:oxH0veC50
>>249
話は変わるけど服部栄養専門学校の服部先生は調理師免許持ってないんだって
2018/07/30(月) 20:35:26.48ID:r0zEs9EBa
>>261
え?俺は情報関係の資格一つも持たずに学校でC言語教えてたよ。
もちろん学校って言っても大学なので教員免許みたいなものもなしだよ。
2018/07/31(火) 07:08:54.24ID:0WPHgBA60
<<250
BUFFALOの安いキーボードだと'め'と\がどっちもスラッシュで印刷されてて・・・
全く気づきませんでした
264デフォルトの名無しさん (アウアウカー Saa7-K8JO [182.251.253.5])
垢版 |
2018/07/31(火) 08:59:47.57ID:2hPyQPU6a
旧石器時代に作られたjavaのコードを調べてたら、
javax.swingみたいな組み込みのパッケージに直接オリジナルのクラスを追加している(そしてそのせいで最大にバグを引き起こしている)実装を見たんだけども、
こういう手法ってかつては一般的だったの?

どう考えてもアンチパターンな気がするんだけども
265デフォルトの名無しさん (アウアウカー Saa7-2Ess [182.251.240.47])
垢版 |
2018/07/31(火) 10:22:26.10ID:+/oTEV5Ja
>>263
よくわからんが日本語キーボードは「め」が「/」で「ろ」が「\」ではないか?
2018/07/31(火) 10:33:30.64ID:hozPgbYqa
日本語変換でコード打つなら欧米人はどうやって打つんだろうか?

基本プログラミング時は日本語変換はOFFだ
コメントや出力文字列で使うくらい
2018/07/31(火) 10:36:07.86ID:hozPgbYqa
>>264
いや、普通の思考ならパッケージ分けると思う
ズボラし過ぎだろう
2018/07/31(火) 11:20:13.29ID:DldqvCwIa
>>267
だよね。最終更新が2001年らしいから、その時代には普通だったのかもしれないと思った。
そうじゃないなら遠慮なく怒れるわ。ふざけんなナメた実装してんじゃねえよ無能。
2018/07/31(火) 11:28:34.08ID:DldqvCwIa
ちなみにおそらく意図としてはpackage privateなクラスやプロパティを直接触りたかったんだろうな、と。
publicになってないものを直接触らなくちゃいけなくなった時点で根本的に設計間違えてるって気づけよ、、
2018/07/31(火) 15:23:33.80ID:K11t53A/0
気づいたときには時すでにお寿司
2018/07/31(火) 19:36:06.06ID:M5dn2TAr0
>>236
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

この2冊は双子。
ただし、Pythonの方が難しいから、先にたのしいを3回読むこと。
たのしいをみっちり勉強すると、みんなのがスラスラ読める

Pythonで考えて、Rubyに変換するよりも、
Rubyで考えて、Pythonに変換する方が簡単

「たのしいRuby」「スッキリわかる Java入門 第2版」
この2冊をみっちり勉強すると、基礎体力が付いているから、太郎本も読める

Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

ただし、Android の勉強のほとんどは、フレームワークの勉強。
言語じゃないから、言語を勉強しても、何も作れない!

だから、Rails などのフレームワークをやっていない人は、大変。
製品を作る全過程がわからないから

Java 土方は、製品の一部分しか作らないから、全体像を知らない
2018/07/31(火) 20:22:10.38ID:rMUR8HCB0
とすると、推奨本をしっかり読みこんだのち
Railsを学ぶといいということでしょか?
2018/07/31(火) 20:32:17.55ID:AgEH6KDfM
明確な目標があるなら普通にそれをやるべき
勉強本マニアになったところでしょうがない
2018/07/31(火) 20:34:06.22ID:rMUR8HCB0
ありがとうございます!
とりあえず、2冊テキストを読んだので、アプリ作れるか試してみます!
2018/08/01(水) 00:34:44.18ID:GZaAdjmn0
フレームワークを勉強する定番は、

無料のRails チュートリアル
276デフォルトの名無しさん (アウアウウー Sa9b-53i4 [106.132.131.245])
垢版 |
2018/08/01(水) 20:49:51.16ID:WDXOLOCva
フレーム枠
2018/08/02(木) 03:15:06.62ID:fAfw4oAh0
16進数について教えて下さい
2進数は入門サイト等見てなんとなく分かってきましたが、16進数が分かりません

0x000FF1
これは10進数にするといくらなんでしょうか?解読の仕方も教えてほしいです
2018/08/02(木) 03:51:34.23ID:vClc7nAi0
>>277
n進数というのは一桁でn個の値を使えるということで、16進数なら1桁の中は16種類の文字を数値ということにして扱う。
一般的な10進数だと 0 〜 9 までしかなくて足りないので A 〜 F も一桁の数を表す事にして1桁で16段階を表せるようにする。
1桁で 0 〜 F が10進数の 0 〜 15 に相当する。一つ上の桁の 10 は10進数だと16になる(16^1ということ)。
もう後は算数の問題なのでわかるよな。 0x000ff1 は 15 * 16^2 + 15 * 16 + 1 = 4081 だ。
2018/08/02(木) 04:55:14.62ID:fAfw4oAh0
>>278
すいません、ありがとうございます。
0x00FFF1だったら
15*16^3 + 15*16^2 + 15*16 +1
こういう感じで合ってますか?理解できたかもです><
280デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.13])
垢版 |
2018/08/02(木) 09:38:59.03ID:Cp7uV85Za
>>279
そうそう。それで良い。
2018/08/02(木) 12:14:47.15ID:yvP4ulwr0
16進すうを、2しん数に直してみれば?

0xAF → 0b1010_1111

A=10, F=15

(NG ワードで書き込めないから、変な文章になった)
2018/08/02(木) 12:19:40.59ID:dCoTR4Ex0
2進数で説明しようとすると、なぜかNGワードになるな・・・
2018/08/02(木) 12:22:24.78ID:dCoTR4Ex0
>>277
2進を理解しているのなら、16進を2進に変換すると足し算だけで出来る
16進:00 0F F1
2進:1111 1111 0001

2進はただの2^nのフラグなんで、
(2048 + 1024 + 512 + 256) + (128+64+32+16) + (1)
=4081

将来的にbit演算でANDとかORとか右シフトとか左シフトとかする時は、2進で考えた方が楽
2018/08/02(木) 13:12:11.32ID:lJdnLKf/d
まぁ2進数も16進数もあまり10進数に変換したりはしないよな
285デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.13])
垢版 |
2018/08/02(木) 13:34:49.36ID:Cp7uV85Za
そうだな。むしろ10進のままだと分かり辛くて16進に変換する方が多いかな。
2018/08/02(木) 17:01:41.94ID:0VvnPUup0
昔は0からFまでビットパターンがすっと出てきたが、もうすっかり忘れてしまった。
287デフォルトの名無しさん (ワッチョイ 6379-7nO3 [122.23.178.114])
垢版 |
2018/08/02(木) 17:32:08.59ID:TzqUENB30
case0と4と8のrandがエラーになります
アドバイスください

https://ideone.com/2uM5q1
2018/08/02(木) 18:39:23.05ID:0VvnPUup0
>>287
aとbが0から3で、かつ同じ数字でないという条件なら
switch (a+b)
 case (1) return 2 ;
 case (2) return 1;
 case (3) return 0;
2018/08/02(木) 18:40:28.63ID:0VvnPUup0
間違い。0から3じゃなくて0から2ね。
290デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.14])
垢版 |
2018/08/02(木) 19:06:35.74ID:SFe9zIxEa
>>287
言語は何?Javaではないよね?見た感じCのようだが。
C言語の質問はC言語のスレでするように。ここは Java のスレだ。

まあだいたいの Java プログラマはCもわかるとは思うがここに書いたらスレチだ。
Javaの情報を求めるものにはノイズにしかならない。
291デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.18.198])
垢版 |
2018/08/02(木) 19:50:05.85ID:J3O8/chO0
>>290
黙れ無能
2018/08/02(木) 20:03:56.37ID:dPAstyc30
Cに見えるんだってwww
293デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.18.198])
垢版 |
2018/08/02(木) 20:50:37.59ID:J3O8/chO0
>>287
できまちた
https://paiza.io/projects/Gscp1N0GhBv_HhDZj_f_YQ

・randに()がついてない
・you = ans 代入になってる

を修正したらok
294デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.18.198])
垢版 |
2018/08/02(木) 21:10:07.77ID:J3O8/chO0
>>271
ファイルのダウンロードについて教えてください

CSVファイルを動的に作成してそれをダウンロードする機能を
作成しているのですが、サーバのメモリが少なくてメモリに
出力するとメモリーオーバーフローのエラーが発生します

そこでCSVファイルを一旦HDDに出力してそれをレスポンスとして
返そうと思うのですが、ダウンロードの途中に中断されたとか
ネットワークエラーが起こったときに一時ファイルがサーバに残ってしまい
いずれストレージを圧迫するのではないかと危惧しています

このようなときはどのように実装すれば良いのでしょうか?
一時ファイルのクリーニングをどうやれば良いのか教えて欲しいです
他に良いやり方をご存知でしたら教えて欲しいです
どうぞよろしくお願いいたします
295デフォルトの名無しさん (ワッチョイ 139f-Xflc [118.152.82.239])
垢版 |
2018/08/03(金) 00:55:46.70ID:98gPvf7X0
>>294
CSVファイルを特定のディレクトリ以下に毎回新しいファイル名で作る事にして、
新しいファイルを実際に作り始める直前にそのディレクトリ以下の古いファイルを
削除する、なんてのどう?
時間で制限すると短時間に沢山リクエストが来た時にまずいという場合は更に
ファイル数でも制限して新しいファイルが100個以上残らないようにするとかね。

あと、ファイルの内容が同じなら古いファイルのタイムスタンプを更新して新たに
作ったことにして実際に新たに作った方はすぐ削除するとかね。同じ内容の
CSVになる事が事前に与えられたパラメータからわかるのであれば最初から
作らないっていう手もある。
296デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.0.108])
垢版 |
2018/08/03(金) 06:08:02.22ID:KD3tz5Tj0
>>295
ありがとうございます
2018/08/03(金) 10:43:18.14ID:ioCor75Ha
>>296
CSVを作成し始めた時点でテーブルにファイル名等々を保存、レスポンスを返したらそのレコードに正常終了のフラグを立てて、ファイル本体は削除

任意のタイミングでそのテーブルを舐めて、正常終了にならないまま時間が経ってるCSVはファイル削除してデータ上は失敗ステータスに更新

という実装をしたことがある。メリットとしてはどういうCSVがいつ失敗したのか把握しやすい
298デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.36])
垢版 |
2018/08/03(金) 16:53:38.35ID:X+nM2ZWla
>>287
俺が Kotlin で大幅に書き換えてやったから参考にしなさい。
無駄な処理はガバッと削除したので小さくなった。
https://paiza.io/projects/so9F6hmbk2mnHO_KKsg85Q
299デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.20.96])
垢版 |
2018/08/03(金) 19:41:38.60ID:GOZ9L8DI0
>>297
ありがとうございます
300デフォルトの名無しさん (ワッチョイ efb6-Mdsj [111.90.20.96])
垢版 |
2018/08/03(金) 19:45:26.78ID:GOZ9L8DI0
>>298
えげつない記述力ですね
2018/08/03(金) 19:57:48.67ID:seFAJe100
// ドアが3つならどのドアをオープンしたかは
// 求める必要がないので省略。

これだめだろ
そんなこと言ったら変更ありなしで固定確率の結果返せばいいじゃん
302デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.36])
垢版 |
2018/08/03(金) 20:21:23.49ID:X+nM2ZWla
>>301
最初は馬鹿正直に作ったのだがオーブンするドアを求めても表示しないのなら無駄になることに気づいたんだよ。
ということは処理そのものが無駄だと。

ということで人力で超最適化。
2018/08/03(金) 20:52:06.74ID:seFAJe100
多少頭がいいばっかりに火傷するタイプだな(遠い目
304デフォルトの名無しさん (ワッチョイ 139f-Xflc [118.152.82.239])
垢版 |
2018/08/04(土) 00:45:40.61ID:2zclIjyW0
ドア開けバージョンはこれだ。結果を毎回出力するので出力が多い。
https://paiza.io/projects/BC39iPHBLiGoCzaRE03jOg
2018/08/04(土) 09:43:44.16ID:+vznLLf60
ついでに最終選択ドアも出力してください
306デフォルトの名無しさん (ワッチョイ 139f-Xflc [118.152.82.239])
垢版 |
2018/08/04(土) 17:19:57.47ID:2zclIjyW0
ドア変更がある場合に変更後のドアも出すならこんな感じか。
https://paiza.io/projects/LLQwJ1l5cFMab6otYcI74A
2018/08/04(土) 17:51:43.93ID:+vznLLf60
println("[$i] You=$you, Open=$opn,${if (change) " You2=${changeDoor(you, opn)}," else ""} Ans=$ans, $wlstr")
エレガント?なコードがちょっと要件に沿うよういっただけで一瞬でエディタもバグる超スパゲッティに

てかkotlinきめえw
2018/08/04(土) 17:58:42.48ID:2zclIjyW0
>>307
${} を入れ子にしたからな。外にも出せるよ。Java と同じ String の連結で + も使える。
2018/08/06(月) 12:40:16.38ID:fu+3+K8Ia
>>307
そりゃわざとキモくなるような書き方してるからだろw
310デフォルトの名無しさん (ワッチョイ 139f-Xflc [118.152.82.239])
垢版 |
2018/08/07(火) 01:32:48.21ID:oBkDl7ym0
色々変えて見やすくなった。
https://paiza.io/projects/Jxs2ws2XzZ8MrquYAjYMFg
2018/08/07(火) 16:08:14.49ID:VuYJRj/9M
この夏java極めようと思っていたのですがもうオワコンなんですか…?

Androidエンジニアになりたいです
312デフォルトの名無しさん (アウアウカー Sab7-iFcb [182.251.240.17])
垢版 |
2018/08/07(火) 17:21:08.43ID:r/NXRNz/a
そんなあなたに Kotlin

結局は Java 覚える事になりそうだけどなw
2018/08/08(水) 02:39:32.48ID:o1XsaDKS0
Cに書き直してみた。
https://paiza.io/projects/8aPAf5jUp4-nIZ_T6iS-tw
2018/08/10(金) 09:09:40.78ID:GW9IT4yi0
kotlinってjava覚える必要ある?
結局はインスタンスやメソッドの取り扱い方を覚えるだけでしょ
java→kotlinといより
kotlin→場合によってjava調べる的な
2018/08/10(金) 09:17:01.61ID:4t5DQamya
他のOO言語の経験があるならあえてJavaやらなくてもサンプルコードくらいはなんとなく読めるだろうから
経験ないならいきなりKotlinはまともな初心者向けの書籍ないから無理
2018/08/10(金) 09:54:41.39ID:4ie0qQxWM
長澤さんのKotlin本はどのくらいのレベルが対象?
2018/08/10(金) 12:55:08.73ID:xghqpyUKa
Twitterで本人に聞いてみれば
318デフォルトの名無しさん (ワッチョイ c779-vAau [122.23.174.26])
垢版 |
2018/08/13(月) 03:04:53.34ID:hqkLiaZ40
コメント化ってどんな時に使えばいいんですか?
今やってるプロジェクトで一切コメントを置いてないせいでコードがスパゲッティから毛糸のほつれに進化しかけています。
//と/**/はどっちの方がいいのか、どのタイミングで入れたらいいか等が知りたいです
2018/08/13(月) 08:10:45.77ID:CiYwNC/na
メソッドやクラスにはできるだけJavaDocコメントを付けて、そのメソッドやクラスの説明を書く
そして原則として、メソッドの中にはコメントは極力書かない
説明を一言書きたくなるようなパッと見何やってるか分かりにくい部分は、コメントの代わりに別のメソッドとして切り出してメソッド名で説明する
それを徹底してればprivateメンバなんかはいちいちJavaDocコメント書かなくても問題にはならない
2018/08/13(月) 08:23:54.17ID:HTY6GtFCa
>>318
「リーダブルコード」という、素晴らしい名著があるからそれを読んでみることをおすすめする。
2018/08/13(月) 10:15:39.16ID:9hQNlq880
企業によるアンチ規約あるあるだな
2018/08/13(月) 15:56:23.52ID:8BISUvphd
ローカル変数に引数を代入する
2018/08/13(月) 16:38:50.33ID:9hQNlq880
参照でなければ引数自体がローカルなんだがw
2018/08/13(月) 17:00:44.15ID:3xCIU7sj0
クリップボードについて質問です。

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable object = clipboard.getContents(null);

String s = "Test"; // 保存するテキスト
StringSelection selection = new StringSelection(s);
clipboard.setContents(selection, null);

String str = "";
try {
str = (String)object.getTransferData(DataFlavor.stringFlavor);
} catch(UnsupportedFlavorException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(str);

まずエディタか何かで人力でクリップボードに何かの文字列をコピーします。例えば"ABC"をコピーして、
このコードを走らせると
ABC
と表示されます。そしてそのままもう一度このコードを走らせると、今度は
Test
と表示されます。ABCと表示されるのは何が悪いんでしょうか?
325デフォルトの名無しさん (ワッチョイ d6b6-yWHp [111.90.0.100])
垢版 |
2018/08/13(月) 21:22:00.43ID:wBJkicYb0
>>324
なるほど、完全に理解した

clipboard.setContents(selection, null);
これのあとに
Transferable object = clipboard.getContents(null);
これを書けばおk
326デフォルトの名無しさん (ワッチョイ 239f-2km2 [118.152.82.239])
垢版 |
2018/08/13(月) 23:25:56.73ID:z6+TJcGX0
>>324
そのプログラムだとこうなってるよね。

1. 2行目の getContents() でエディタでコピーした "ABC" が取り出される。

2. setContents() で "Test" がクリップボードにセットされる。

3. 1で取得した object の中身を取り出して出力する。(取り出されるデータは "ABC")。

"ABC" が出力されて当然の作りになっている。
上記の3の所で "Test" を取り出したいなら 2 の直後で 1 の処理をしなければならない。
327デフォルトの名無しさん (ワッチョイ d6b6-yWHp [111.90.12.26])
垢版 |
2018/08/14(火) 07:07:01.81ID:IYCmiTRH0
Listを複数のリストに分割したいのですがやり方がわからず教えていただきたいです

// たとえば要素の数が10のリストがあったとして

List<Integer> list = new ArrayList<>();

for (int i = 0; i < 10; i++) {
 list.add(i);
}


// それを4つのリストに要素の数ができるだけ均等になるように分割したいです

List<Integer> list1 = new ArrayList<>(); // <- 要素は0,1,2
List<Integer> list2 = new ArrayList<>(); // <- 要素は3,4,5
List<Integer> list3 = new ArrayList<>(); // <- 要素は6,7
List<Integer> list4 = new ArrayList<>(); // <- 要素は8,9

どうぞよろしくお願いいたします
328デフォルトの名無しさん (ワッチョイ d6b6-yWHp [111.90.12.26])
垢版 |
2018/08/14(火) 07:31:28.19ID:IYCmiTRH0
>>327
自己解決しました、もう良いです
返信しないでください
2018/08/14(火) 09:51:15.67ID:nGrU4rwG0
>>325
ありがとうございます。それはうまく行きました。しかしごめんなさい。どうも私が問題をちゃんと把握出来ていなかったようです。

try {
Thread.sleep(7000);
} catch (InterruptedException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable object = clipboard.getContents(null);

String str = "";
try {
str = (String)object.getTransferData(DataFlavor.stringFlavor);
} catch(UnsupportedFlavorException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(str);

どうもJTextField が関係しているらしいです。このプログラムにはテキストフィールドがいくつかあるのですが、
そこに"ABC"と入力し、それを選択、Ctrl+C でコピーします。
そしてこのコードを走らせ、スリープしている7秒の間に別のエディタで Test をクリップボードにコピーします。
すると出力が ABC となります。7秒の間にエディタ上でペーストするとちゃんとTestがペーストされます。
ABCをコピー、続けてTestをコピーしてからこのコードを走らせるとちゃんとTestとでます。
ABCをエディタでコピーした時はこの症状は出ません。
2018/08/14(火) 22:37:46.47ID:w7/teWcla
public static void main()って
メソッドなんですか?
2018/08/14(火) 22:44:24.53ID:z3VJK4Uca
メソッドです。
Javaで書かれたプログラムはMainクラスのmainメソッドを実行すると決まっています。
2018/08/14(火) 23:13:33.44ID:w7/teWcla
なるほどkotlinのmain ()関数のようにエントリポイントになっているんですね

コンストラクタもメソッドですか?
2018/08/15(水) 00:49:57.59ID:BN2igdfy0
>>331
クラス名は Main じゃなくてもいいんだよ。
2018/08/15(水) 05:08:46.27ID:JGyCTF+Aa
>>332
どちらもその理解で合ってる
2018/08/15(水) 05:10:31.45ID:JGyCTF+Aa
>>333
あ、はい
2018/08/16(木) 08:36:03.18ID:nBIOAicW0
すいません教えてもらってjdkは何とか導入成功したんですが
eclipseってやつと日本語化のを導入してコードを実行しようとしたら
選択は起動できず最近の起動もありません。とエラーが出て実行できません。何度か再インストールしましたが結果変わらず。
何が原因なのでしょうか?導入で参考になるサイトあれば教えてほしいです
後JDKだけじゃjavaのコードを実行とか出来ませんよね?eclipseってやつを導入して初めて意味があるものって認識で大丈夫ですか・
そこら辺もかなり曖昧なのですが…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況