X



★★Java質問・相談スレッド180★★ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/04/21(金) 22:13:17.42ID:Sf0TFsly
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド179★★
http://echo.2ch.net/test/read.cgi/tech/1476706523/
0382デフォルトの名無しさん
垢版 |
2017/08/05(土) 08:20:01.70ID:POXKRSY3
直行する問題を分離できないプログラマやSEって意外と多いよね
だから未だにUIとDBが密結合したようなおかしなシステムばかり生産される
みんながみんな最低限の知性を持っているわけじゃないんだ
0385379
垢版 |
2017/08/05(土) 09:13:44.39ID:j+EOUu/i
>>381
うーん別問題ですか。Javaのstreamは難しいです。
今の所forループでベタに書いているのですが、streamに置き換えで効率化出来ないかと思いまして。

最初はFunctional IFでフィルタした結果をstreamに流し込めばいいのかなと思ったのですが上手く書けませんでした。途中から型が変わる様なのは許容されなかったので…

forループ以外のアプローチにはどういう方法があるか教えてください。
0386デフォルトの名無しさん
垢版 |
2017/08/05(土) 09:29:02.83ID:P20UcjsV
>>383
なんかおかしいか?
バグ調査の手法って
情報を収集する>仮説を立てる>実験(検証)する>フィードバックを得る
のループが基本だと思うけど
実験しないでどうやって調査するんだ
0387デフォルトの名無しさん
垢版 |
2017/08/05(土) 09:31:00.96ID:5oF9cacF
>>385
コレクションから要素1つ取り出してそれをストリームとか、それだけ聞いたら意味不明すぎて笑うレベル
小出しにしないでどういう処理をストリームにしようとしてるのか全部書け
0390デフォルトの名無しさん
垢版 |
2017/08/05(土) 09:40:30.90ID:b1VYn167
>>386
そのサイクルの目的は問題の原因箇所を特定すること
問題が起きたり起きなかったりするときのパラメータの組み合わせを特定するためではないよ
延々実験してる奴は大抵そこを履き違えてる
0391379
垢版 |
2017/08/05(土) 09:52:59.46ID:j+EOUu/i
>>389
ありがとうございます。参考になります。

自分が書いている内容が間違いでした。
やりたかったのは、

List<HashMap<string,string>> aList =...;

というものに対して、特定keyの値を取り出したstreamを得るという事でした。
...map(x -> x.get(aKey)).map().collect()
というのはエラーでした。

今は、forループで一つずつ別のArrayListに詰めてから、改めて処理しています。
0393デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:46:26.43ID:pAL2FsqO
>>383
フールプルーフのGUIで意味もわからず全ての組み合わせから正解を探そうという育ちに基づいてるのかな
自由入力から理論に基づいて作り出さないとだ
0394379
垢版 |
2017/08/05(土) 13:20:28.63ID:j+EOUu/i
>>392
改めてありがとうございました。
上手く動きました。
0395デフォルトの名無しさん
垢版 |
2017/08/05(土) 17:28:20.99ID:xVRX2iSI
>>386
ソース読めば良いんじゃないかな。ていうか、ものによっては実験ではわからないバグもあると思うよ。

例えばこれはJavaではなくC言語での話だが、メモリ確保がおかしくて確保していない領域を読んで正常に動かない時があるプログラムがあった。
こういうのが中々見つからないのはメモリ確保していない不定値が詰まっている領域が停止させられることなく読めてしまい尚且つたまたま0が埋まっていたりして無視されてあたかも正常に動いているかのような状態になるからだ。
このたぐいのバグに対しては実験を繰り返しても偶然でしか発見できない。メモリの内容が偶然異常動作を引き起こす内容になっている時にデバッガで動かしながら確認してようやっと見つけるかまたはソース解析して見つけるかだろう。

Javaの場合はメモリ確保でこういうのはないが(あっても例外が出てすぐ気づくだろうが)、入出力が絡んだりして事前にどうなるかがわからない部分に対して検査が甘かったりすれば似たような事は起こるかもしれない。
0396デフォルトの名無しさん
垢版 |
2017/08/05(土) 18:24:07.44ID:QyI0bKK5
結局デバッガで実験してんじゃん
ソース読みながらうんうん唸るのは時間かかるし効率悪いよ
0397デフォルトの名無しさん
垢版 |
2017/08/05(土) 19:35:02.43ID:P20UcjsV
>>395
そういうのはメモリを正しく確保できてるかを検証するテストを書いて
境界値をメインにいろいろなパラメータを渡して何度も実験するんだろ
まさかコード見ただけで直してはいおしまいなんて無責任なことはしないよな普通
0398デフォルトの名無しさん
垢版 |
2017/08/05(土) 19:43:26.85ID:P20UcjsV
デバッガを使ったとしても結局は
いろいろなパラメータで
実際に動かして
結果を検証して
フィードバックを得る
をデバッガセッションの中でやってるだけだぞ
パラメータを与える方法やフィードバックを得る方法がデバッガでは豊富で手軽というだけでしかない
デバッグの根本的な手法は同じ
0399デフォルトの名無しさん
垢版 |
2017/08/05(土) 20:32:46.30ID:2VQydW7w
473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした


自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
0401デフォルトの名無しさん
垢版 |
2017/08/06(日) 09:26:12.17ID:4/M1vW+Y
Javaでhtml5をビルドするためのビルダークラスってある?
オープンソースでもいい
0403デフォルトの名無しさん
垢版 |
2017/08/06(日) 09:44:53.85ID:Q3hkVqCh
HTMLをわざわざDOMで作る奴なんかいるんだろうか
業務でXML DOMとかORMのような無駄な抽象化のなされたものばかり扱ってると、テンプレートエンジンはエイリアンに感じるのかな
0404デフォルトの名無しさん
垢版 |
2017/08/06(日) 10:08:43.55ID:4/M1vW+Y
WebアプリじゃないからWebフレームワークは使わない前程です

ターミナルから起動して、業務上の計算を行い(ターミナルに途中経過を表示)、結果をhtmlファイル形式で出力する

これの最後の結果オブジェクトをhtmlに変換する処理を手軽に書きたいです
0407デフォルトの名無しさん
垢版 |
2017/08/06(日) 11:03:07.89ID:57DyNeAC
>>404
HTMLも所詮はテキストファイルなんだし、書式が固定ならHTMLに計算結果埋め込んでテキストファイルで保存すりゃいんじゃね?
0411デフォルトの名無しさん
垢版 |
2017/08/08(火) 12:14:43.90ID:ybbt0LUq
こんにちは
0413デフォルトの名無しさん
垢版 |
2017/08/10(木) 19:10:35.63ID:v0g6CqEN
過疎って来たから一つ簡単なお題でも書いておくか。

>>411のような入力に対して逆順にして>>412のように出力するプログラム。
0414デフォルトの名無しさん
垢版 |
2017/08/10(木) 19:49:49.20ID:juR+rjtY
try(java.util.Scanner in = new java.util.Scanner)
{
while(in.hasNextLine())
{
System.out.println(new StringBuilder(in.nextLine()).reverse());
}
}

何も見ないで書いたからどこか間違えてるかもしれん
0415デフォルトの名無しさん
垢版 |
2017/08/10(木) 19:50:48.80ID:juR+rjtY
おうち、1行目から間違えてるし
try(java.util.Scanner in = new java.util.Scanner(System.in))
0416413
垢版 |
2017/08/10(木) 20:20:18.14ID:2wg7WHdj
おお。できたね。じゃあ他のやり方もどんどん作って。
0417デフォルトの名無しさん
垢版 |
2017/08/10(木) 20:43:31.44ID:bCDgNNGM
java.util.Properties properties = new Properties(); properties.put("python.console.encoding", "UTF-8");

org.python.util.PythonInterpreter.initialize(System.getProperties(), properties, new String[0]);

try(org.python.util.PythonInterpreter ip = new PythonInterpreter()) {
ip.exec("str = input()");
ip.exec("print(str[::-1])");
}
0418デフォルトの名無しさん
垢版 |
2017/08/10(木) 20:53:56.01ID:TjDaZrJ6
Streamを使ったら1行なんだが?

"こんにちわ".chars().collect(ArrayDeque<Integer>::new, ArrayDeque::addFirst, ArrayDeque::addAll).stream().map(c -> Character.toString((char)c.intValue())).collect(Collectors.joining());
0419デフォルトの名無しさん
垢版 |
2017/08/10(木) 20:55:39.46ID:8pRtIXqA
String rev = "";
for (char c : new Scanner(System.in).next().toCharArray()) {
rev = c + rev;
}
System.out.println(rev);
0420デフォルトの名無しさん
垢版 |
2017/08/10(木) 21:10:59.34ID:TjDaZrJ6
再帰使えば余裕だろ

static String reverse(String src) {
 if (src.length() < 2) {
  return src;
 }
 String left = src.substring(0, src.length() >>> 1);
 return reverse(src.substring(left.length())) + reverse(left);
}
0421デフォルトの名無しさん
垢版 |
2017/08/10(木) 21:16:01.50ID:TjDaZrJ6
"こんにちわ".chars().mapToObj(i -> Character.toString((char) i)).collect(Collectors.reducing("", (a, b) -> b + a));
0424デフォルトの名無しさん
垢版 |
2017/08/11(金) 11:33:47.91ID:7gXoMlSA
>>414みたいなStringBuilder方式か、>>422の方式だけがアリだな
>>418の「Streamを使ったら1行なんだが?」は
冗談としては評価したいが、アホや初学者が追従しないことを望む

偉そうなこと言ったけど俺も>>423さんと同じ発想で
List<Character> list = s.chars().mapToObj(i->(char)i).collect(Collectors.toList());
Collections.reverse(list);
ここまで書いた時点でダサすぎてエディタそっ閉じした
0426デフォルトの名無しさん
垢版 |
2017/08/11(金) 13:08:22.16ID:qKco1j+0
>>424
お前何様だよ
0429デフォルトの名無しさん
垢版 |
2017/08/11(金) 14:28:44.89ID:qKco1j+0
>>427
出力もアルゴリズムと一部と考えてはいかがかな?

>>428
副作用はない、もしくは副作用は悪いものじゃないと考えてはいかがかな?
0434デフォルトの名無しさん
垢版 |
2017/08/11(金) 21:26:09.75ID:qKco1j+0
人を傷つけて食う飯がうまいか?
0436デフォルトの名無しさん
垢版 |
2017/08/11(金) 21:31:08.86ID:qKco1j+0
>>435
クズが
人の笑顔で食う飯の方がうまいに決まってるだろうが
0439デフォルトの名無しさん
垢版 |
2017/08/11(金) 22:11:05.94ID:qKco1j+0
えへへ
0444413
垢版 |
2017/08/13(日) 18:34:10.79ID:aXXBQeA8
おや? お題が簡単過ぎて荒れた後にもう終わっちゃったかw
もうちょっと難しいのが良いかな?
かといって丁度いいのが今思い浮かばないのでお題募集。
0445デフォルトの名無しさん
垢版 |
2017/08/13(日) 20:32:24.14ID:y+73WZeG
そういうスレじゃないんじゃない?
0450413
垢版 |
2017/08/13(日) 21:13:24.48ID:aXXBQeA8
>>446
おお。そんなスレあったのか。移動しよう。
0454デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:02:45.14ID:2GZgx1H7
2chってほんと馬鹿しかいなくなったなぁ
スレチの小学生レベルのお題だして喜んでる馬鹿に
それに食いついてレスつける馬鹿に、さらにそれを見て喧嘩する馬鹿
0455デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:16:44.81ID:wXZu/4Fl
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0457デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:47:38.21ID:04MAmLWO
>>454
君初心者スレに常駐してる人だよね
君がまともな回答してるの見たことないけど
0462デフォルトの名無しさん
垢版 |
2017/08/17(木) 08:05:33.22ID:463MvgFE
プロパティなんか作ったら
setter作るかプロパティにするか悩むじゃないか!
0463デフォルトの名無しさん
垢版 |
2017/08/17(木) 11:36:47.22ID:1sy3C8pT
どうせ入れるなら、より汎用的なDecoratorの方がいいな。
EEの方で@Decorator使われちゃってるけど。
0464デフォルトの名無しさん
垢版 |
2017/08/17(木) 12:25:10.22ID:N+i40EO/
漢ならプロパティ
0465デフォルトの名無しさん
垢版 |
2017/08/17(木) 16:42:11.73ID:ZvDESEOS
初心者ですがEclipsでjavaを勉強しているんですが初心者本に出てくるようなコードを書いて
エクスポートしてJARファイルを作ったんですがクリックしても実行してくれません。
ソースコード貼ったほうがよければ貼りますけどまぁ文字列表示とキーボードから入力して三角形や円の面積を求めるような簡単なプログラムです。
どうしたらファイルを実行したら表示してくれるんでしょう?
0467デフォルトの名無しさん
垢版 |
2017/08/17(木) 17:29:22.88ID:Q7A+EFnW
クリックでは実行できないのかも。
コマンドプロンプトから、実行すれば?

実行ファイルの作り方・実行の仕方も、調べて
0470デフォルトの名無しさん
垢版 |
2017/08/17(木) 18:17:46.44ID:TlX56ZGd
>>465
実行可能なjarを作る必要がある。
そのjarは多分実行可能でないjarだ。
0471デフォルトの名無しさん
垢版 |
2017/08/17(木) 18:24:39.38ID:bZz68YN4
>>470
実行可能のほうで保存してみたけどだめでした

すっきりわかるjava入門を読んで勉強しているので
http://devnote.jp/jdk/8/windows/
ここを推奨されているので、みながらJDKを設定してみたんですがダメでした・・・
誰か助けて・・・
0472デフォルトの名無しさん
垢版 |
2017/08/17(木) 18:42:20.34ID:9X52Zi9u
>>465
Eclipse上では動いてるんだよね?
ソースに問題ないならjarだけど、>>467も書いてるけど、コマンドプロンプトからjar実行してみたら?
0473デフォルトの名無しさん
垢版 |
2017/08/17(木) 18:55:21.93ID:bZz68YN4
>>472
eclips上では正常に動いてます。
コマンドラインで実行するのにJDKの設定が必要ということが本に書いてあったので記述どおりに設定したのですが
バージョンすら表示しません。
http://www.dotup.org/uploda/www.dotup.org1341471.jpg

設定は
http://www.dotup.org/uploda/www.dotup.org1341476.jpg
こんなかんじでJAVA_HOMEもPathもちゃんと設定できてると思うんですがうまくいきません・・・
0479デフォルトの名無しさん
垢版 |
2017/08/17(木) 19:53:40.77ID:bZz68YN4
>>475
そこはJavaフォルダを見ながら入力しました
そしてPathの末尾に
;%JAVA_HOME%\bin;
を追加することでコマンドプロンプトでJDKのバージョン確認とhelloと表示するプログラムのコンパイル・実行はできました。
お騒がせしてすみませんでした。
でも自分が書いたコードがコンパイルできても実行できないんですよね・・・
ちょっと自分で調べてまた質問させてください・・・
■ このスレッドは過去ログ倉庫に格納されています

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