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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa07-jGB0)
垢版 |
2021/06/29(火) 11:42:34.74ID:iGYT4fi4a
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/06/30(水) 01:09:52.95ID:tav+nGS00
たておつ
2021/07/01(木) 22:29:48.14ID:FSqo0WtFr
System.out.printlf(">>1乙");
2021/07/13(火) 21:22:44.77ID:bisLdY4XM
java12をインストールしてるPCで動かすんですけど
java9でビルドしたモジュールを動かすのと
java12でビルドしたもの動かすのの違いある?
java12でビルドし直すの大変なんですが
2021/07/13(火) 21:25:02.70ID:mLVoFNhzr
違いはある
6デフォルトの名無しさん (ワッチョイ 23ad-LKIa)
垢版 |
2021/07/15(木) 21:45:21.10ID:GIuLsig00
俺は気にしない
2021/08/05(木) 10:30:17.86ID:R+HrM9gwM
830と1830を下記で実行するとどうなりますか?
setscale(-2、0)
setscale(-2、1)
8デフォルトの名無しさん (ワッチョイ 13ad-E1rX)
垢版 |
2021/08/06(金) 02:59:59.87ID:0iXVoQ0n0
9デフォルトの名無しさん (ワッチョイ 6eba-Yq60)
垢版 |
2021/08/13(金) 21:50:09.48ID:fohtIooD0
BufferedImage bf = null;
try {
bf = ImageIO.read(new File("‪C:\\Users\\CS\\Desktop\\imgs\\01.jpg"));
} catch (Exception e) {
System.out.println(e);
}
で画像ファイルを読み込もうとしているのですが、
javax.imageio.IIOException: Can't read input file!
Exception in thread "main" java.lang.NullPointerException
at imageProcesser.ImageProcesser.main(ImageProcesser.java:19)
とエラーが出て、ファイルが読み込めません。
画像ファイルはそのディレクトリにあるので、間違いはないと思うのですが、
何が原因なのでしょうか?
2021/08/14(土) 09:16:48.84ID:UN/H9Nah0
>>9
ファイルがおかしいんじゃないかな、ペイントで保存し直してみたらどうだろ
11デフォルトの名無しさん (ワッチョイ 6eba-YgaZ)
垢版 |
2021/08/14(土) 21:10:34.59ID:jZ1IKQjS0
>>10
ペイントで保存し直しましたが、同じエラーが出ます。
2021/08/14(土) 21:33:55.16ID:lkWdL+Tg0
\\ → / ではどうだ?
2021/08/15(日) 07:20:00.05ID:CerJmE5J0
そのファイルは読み込めないというエラーが出ているのだからファイルがおかしいと考えるのが自然
jpgじゃなくてbmpにするとかパス文字列が間違ってる可能性を疑ってcドライブの直下を読み込むとかやってみたら
2021/08/15(日) 10:21:06.67ID:mzIErmSO0
ファイルの存在確認やってみなよ
15デフォルトの名無しさん (ワッチョイ 6eba-YgaZ)
垢版 |
2021/08/15(日) 22:11:37.63ID:bTJgFGNJ0
>>12
‪C:/Users/CS/Desktop/imgs/01.jpg
で試しても同じエラーでした。

>>13
Cドライブの直下に当該ファイルと新規作成したファイルを置き、ファイル存在を確認したところ、存在しない状態であることが分かりました。
Eclipseやコード自体はDドライブで実行しており、対象ファイルはデスクトップに置いている状態でが、パスなどの設定が必要だったのか調べてみます。

>>14
承知致しました。
2021/08/16(月) 00:19:05.37ID:T09XJsj90
JavaでGUIアプリを作りたいのですが、JavaFXが今の流行なんでしょうか?
eclipseでJavaFXのプロジェクト作ってみたのですが、動かずでして。
JavaFXは標準のJavaから外れてしまったのが面倒。
swingの方がいいんでしょうか。
2021/08/16(月) 14:57:57.56ID:9dVVkA630
JavaでGUIを作らない
というのが今の流行だな
2021/08/17(火) 23:51:17.99ID:6gOpyHQGd
どうか教えてください
以下のようにarrayList要素を2つ含んだarrayListがあります。
alist = [["a","b","c"],["d","e","f"]]

["a","b","c"]を取得したい場合は以下です。
alist.get(0);

ではarrayList["d","e","f"]の"d"を取得したい場合はどのように書けばいいのでしょうか?

alist.get(0).get(0)とは書けませんでした。
2021/08/18(水) 00:50:58.57ID:Og1M2Z7Ta
blist = alist.get(1);
blist.get(0);
2021/08/18(水) 04:09:06.06ID:EBcQPiZh0
やってみます。ありがとうございます
2021/08/22(日) 17:07:08.95ID:KT5xlAeJ0
仕事でパイソンでスクレイピングしてるんやけどJavaで作ったHPに苦戦してる。何か参考になる本とかHP無いかな?(^_^;)
2021/08/22(日) 18:23:38.25ID:TsBps+dy0
何に苦戦してて何を知るための本を探してるのか分からんな
○○で作ったHPってのも言語というよりフレームワークの方が重要じゃね
JavaScriptをJavaと言ってる可能性も否定できない
2021/08/22(日) 18:42:46.13ID:KT5xlAeJ0
フレームワークかちょっと調べてみるよ(^_^;)
2021/08/22(日) 20:55:31.16ID:vKABovOF0
スクレイピングで苦戦してるっていうなら、動的コンテンツが取り込めないとかじゃないかと勝手に推測
2021/08/23(月) 00:41:48.01ID:zDEDJ81La
>>21
.jspのページって事?
ここはJava入門・初心者質問スレなので
Pythonスクレイピングの質問はPythonスレへどうぞ
2021/08/23(月) 11:24:18.87ID:0lLvvefH0
>>24
そうですそうです、セレニウムでとれるけど遅いし(^_^;)
もっとはやくと思って、でもまなんとかなりそう
27デフォルトの名無しさん (ワッチョイ 7fba-nzYM)
垢版 |
2021/09/05(日) 07:38:53.36ID:9yzpGtkL0
GUIで
--------------------------------------------------------------------
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
--------------------------------------------------------------------
のようなものを作りたいのですが、何かいい既存のクラスなどありますでしょうか?
※ユーザーが「開く」を押下してフォルダを選択したら、そのフォルダパスが表示されたい
28デフォルトの名無しさん (ワッチョイ 675f-3QxQ)
垢版 |
2021/09/05(日) 09:57:18.10ID:Tib2sM5c0
>>27
そんな古典のようなものをなぜこんなところで聞くのか?
2021/09/05(日) 10:27:31.12ID:TLgodL/b0
SWINGでいいんじゃないの
最近のGUI事情知らんけど
30デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
垢版 |
2021/09/05(日) 15:16:15.30ID:gmkxLdfJa
>>27
visualエディタでbeansを使いましょう
2021/09/05(日) 19:29:12.14ID:XXj7NMSM0
スッキリわかるJavaの実践編って良書ですか?
2021/09/16(木) 01:05:17.69ID:V7qWonkI0
Javaの入門書でこれは止めとけって本があったら教えて下さい
2021/09/16(木) 01:53:42.06ID:HVhtg/u5a
>>32
入門なのか実践(応用)なのかどっちかわからん
>>31
2021/09/16(木) 20:32:16.24ID:bev1QCo20
>>32
あまり古いのはやめといたほうがいい
2021/09/16(木) 22:41:00.67ID:V7qWonkI0
レスありがとうございます

今買おうか迷っている本は、「独習Java」と
「Java 入門編 ゼロからはじめるプログラミング」です(ともに翔泳社)
この2冊について読んだことのある方は感想とか頂けるとありがたいです
36デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
垢版 |
2021/09/17(金) 00:58:03.90ID:V8QoHgqCa
>>35
ひとつだけ言えることは
アプレットが非推奨な今
どっちもGUIにはたどりつかないよ
2021/09/17(金) 22:49:34.01ID:sMA2dk8W0
>>36
分かりました
FEへの合格が当面の目標です
2021/09/18(土) 12:44:30.02ID:4uOUCmxpa
ふーんJava関係あんの?頑張ってね

「基本情報技術者試験」の合格率が2倍以上に増加中
https://xtech.nikkei.com/atcl/nxt/column/18/00001/05847/
2021/09/18(土) 22:42:03.79ID:2niYmNMf0
>>38
ありがとうございます
40デフォルトの名無しさん (ワッチョイ bfe8-U9fS)
垢版 |
2021/09/18(土) 22:44:08.26ID:0vsZVB8h0
>>16
俺はProcessingにJavaのライブラリインポートして
ControlP5乗っけてGUIアプリ作ってる
2021/09/19(日) 00:07:03.99ID:he4ZlGKVa
>>40
入門・初心者には難しいでしょ
42デフォルトの名無しさん (ワッチョイ ffba-5CsD)
垢版 |
2021/09/20(月) 19:14:00.53ID:S8CEwZLU0
JPanelのインスタンスに巣複数個のJButtonを追加しており、各ボタンをプログラム上でクリック処理してみたいのですが、
どのようすればいいのでしょうか?
43デフォルトの名無しさん (ワッチョイ ffba-5CsD)
垢版 |
2021/09/20(月) 19:49:30.57ID:S8CEwZLU0
自決しました。
for (Component c : getContentPane().getComponents()) {
if (c instanceof JButton) {
}
}
で大丈夫かと思います。失礼いたしました。
2021/09/20(月) 23:12:30.91ID:vvw4JppL0
自決ってのはがいしゅつみたいなもんなん?
45デフォルトの名無しさん (ワッチョイ 775f-+OLq)
垢版 |
2021/09/20(月) 23:36:43.05ID:qrQnPgn70
もう死んだと思うよ。
2021/09/21(火) 16:26:42.55ID:EACgI9Q10
質問です

// インデントはアンダースコアで表しています
public class MyClass {
__private final int num;
__public MyClass(int num) {
____this.num = num;
__}
__…
}

という文はエラーにならないですか?
変数numは、宣言時ではなく、コンストラクタに渡された瞬間から
定数扱いになるという理解でよろしいですか?
2021/09/21(火) 17:45:45.35ID:Z8q69Dvg0
blank final ね。大昔の 1.1 だか 1.0 あたりだとエラーになるんだっけか?

宣言された瞬間から(初期化されていない)定数扱い。
コンストラクタ(もしくはインスタンス初期化子)でないと初期化できない。
全てのコンストラクタで初期化されていないとコンパイルエラー。

コンストラクタ(もしくはインスタンス初期化子)以外の場所では初期化済み扱いになる。
2021/09/21(火) 20:29:11.83ID:vVCCFYfi0
定数とは・・・
2021/09/21(火) 21:48:31.31ID:KEf1uiFB0
newする度に変更される可能性のある変数をどうしてfinalにできようか
2021/09/21(火) 22:43:14.80ID:KEf1uiFB0
ああ、static付いてない場合か
すまん忘れてくれ
2021/09/21(火) 23:06:07.07ID:EACgI9Q10
答えてくれた方、ありがとうございました
コードはFE試験を参照して抜き出しました、難解ですね…
2021/09/21(火) 23:13:55.02ID:mfHDQd50a
賢人達を試したのか生意気な
2021/09/21(火) 23:48:58.74ID:EACgI9Q10
>>52
滅相もない…
読んでてよく理解できない箇所があったのでお聞きしただけですよ
54デフォルトの名無しさん (ワッチョイ 9fad-QxrA)
垢版 |
2021/09/22(水) 13:30:08.07ID:Te29kBsr0
賢人?
55デフォルトの名無しさん (ワッチョイ d75f-vKa4)
垢版 |
2021/09/23(木) 00:16:07.48ID:7zkOaZtd0
csvで¥,(カンマをエスケープしている)が含まれるデータを読み込みたいのですが
いつも通りにスプリットしてもエスケープ文字が邪魔します
何か良い方法ありませんか?
一つは¥,を全く別に置き換えてから
再度置き換えるなどを考えてます
2021/09/23(木) 14:56:05.43ID:wZn0v1Qj0
>>55
それは否定的後読みを使えば良いだろう
split("(?<!\\\\),")
2021/09/25(土) 18:57:16.76ID:wk1a5X2V0
アホくさライブラリいくらでもあるだろ、いかにコード書かないかが勝負な
2021/09/25(土) 19:05:34.60ID:wk1a5X2V0
客先(エンドユーザ)がどうしてもExcel使いたい場合などは解るが
システム間のデータやり取りCSVみたいなフォーマット要求してくる
アホなソフト屋どうにかしてほしいわ
59デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 22:53:38.34ID:K0n5mMQr0
>>55
\,を別の文字に置き換えるのがよいと思う

\がエスケープ文字に使われてるので
「\ + 任意の文字」に置き換えればいい

任意の文字はカンマ以外で他のエスケープシーケンスと被らなければ何でも良い
\cとかがわかりやすくていんじゃないかな

,でスプリットして要素を復元するときに\cを,に変換する感じ

\ → \\
, → \,
に変換されてるとするなら、こんな感じでreplaceだけで完全に復元できるはず
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ
60デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 22:56:50.47ID:K0n5mMQr0
>>58
どういう形式が良いのかな?
61デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 23:20:41.67ID:K0n5mMQr0
>>59
ごめんこれ間違ってた、取り下げます
2021/09/26(日) 23:57:45.54ID:5RNiLxHe0
CSV/TSV, JSON, YAML は一般的

これらの構造物に正規表現を使うのは、おかしい。
パーサーを使うべき

各データ(要素)内に、行区切り文字・列区切り文字・クォート文字などの特殊文字がある場合は、
その要素をクォート文字で囲む必要がある
63デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 00:23:48.63ID:Rw+VRmCj0
>>55
修正しました
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ

\ → \\
, → \,
と変換されてる場合は

\\ → \ + 任意の文字
\, → \ + 任意の文字
の順番でreplaceすればOK
64デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 00:30:10.03ID:Rw+VRmCj0
>>62
クオートで囲むのはCSVがRFC4180に従ってる場合でしょ
エスケープするのはRFC4180の形式ではないよ
エスケープするならクオートで囲む必要はないよ

RFCのCSVは扱いにくいんだよね
テキストの行数とCSVのレコード数が一致しないしパーサも結構複雑

エスケープ方式の方があきらかにコンピュータで処理しやすい
CSVのRFCは人類の負の遺産だと思う
2021/09/27(月) 01:15:28.39ID:nw6SPL1Y0
基本、自作したものは、バグるので使えない

CSV/TSV, JSON, YAML などは一般的だから、
たいていの言語の標準ライブラリにある

車輪の再開発はダメ。
開発・テストコストが掛かって、低品質になるから使えない
2021/09/27(月) 01:29:19.77ID:nw6SPL1Y0
例えば、Ruby のCSV で、
各要素内に、行区切り文字(改行)・列区切り文字(カンマ)・クォート文字(ダブルクォーテーション)がある場合。
要素内のクォート文字" は、連続する" で出力される

require 'csv'

input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT

p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

出力
"a""a","b,b",あ
"c
c","d
d"
67デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:29:35.52ID:Rw+VRmCj0
>>65
Javaの標準ライブラリにはないよ
ここはJavaのスレだよ

ドメイン特化な軽量フォーマットを作るのは僕はありだと思うけどなあ
他人が作ったものが高品質とも限らないし標準ライブラリがバグってることもあるよ
ケースバイケースかな
68デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:32:17.39ID:Rw+VRmCj0
>>66
それはRFCに従ってる感じっすね
RFCのCSVはテキストの行数とCSVの行数が一致しないから
grepコマンドでレコードを検索できないしwcコマンドでレコード数を調べることもできない
はなはだ使いにくいと思うんだよね、いわば前例踏襲だけで生き残ってるゴミ仕様だと思うんだよね、SMTPと同じですわ
もうええやろって思う
69デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:39:54.38ID:Rw+VRmCj0
ちなみにJavaの標準ライブラリのString.splitは末尾の空文字列を無視するから
CSVのパースに使うと列の数が変わってしまう
標準ライブラリでもクセがあるから注意
車輪の再開発はケースバイケースだよ

いびつな車輪で走り続けるよりも、よりよい車輪を作って走ったが良いこともある
車輪の再開発だからダメだ、良いのだというものではないという話
70デフォルトの名無しさん (ワッチョイ 1202-r+Xa)
垢版 |
2021/09/27(月) 01:49:46.25ID:OxF6exWm0
おまえら本当に実務でやってんの?
https://mvnrepository.com/search?q=CSV
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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