X



Java入門・初心者質問スレ Part.8
■ このスレッドは過去ログ倉庫に格納されています
0616デフォルトの名無しさん (ブーイモ MMa2-hSSp [49.239.70.39])
垢版 |
2018/10/21(日) 17:19:25.72ID:6w48E+U+M
よくわかってないけど
転職の面接で継承じゃなく委譲だ!
0617デフォルトの名無しさん (ブーイモ MMa2-hSSp [49.239.70.39])
垢版 |
2018/10/21(日) 17:20:57.22ID:6w48E+U+M
と力説しまくれば受かりますか?
みんなあまりできる人いなそうなら面接官にもつっこまれないかな。
0618デフォルトの名無しさん (ブーイモ MMa2-hSSp [49.239.70.39])
垢版 |
2018/10/21(日) 17:22:05.37ID:6w48E+U+M
理解してない面接官のプライドもあるから
よし、君は合格!となることを期待して
0620デフォルトの名無しさん (アウアウカー Sa89-dUTK [182.251.132.225])
垢版 |
2018/10/21(日) 17:28:07.59ID:TsGKjBTxa
使えない奴が入る率が高過ぎたら、そいつの責任になるから、流石にそれなりに勉強してると思うぞ。。。
少なくとも中小は人事なんて無いから、開発責任者とかが面接官する。
大企業も1人くらい分かる奴を面接官に入れるだろ。

ろくな面接官がいないのは派遣会社くらいじゃ無いか?

百歩譲って入れたとして、使い物にならなかったら陰湿なイジメが待ってるぞ。(経験者談)
0622デフォルトの名無しさん (ワッチョイ 81b6-/3OO [220.208.88.117])
垢版 |
2018/10/21(日) 18:16:07.43ID:3Lw0xmRE0
>>619
こういう書き方なら時々やる
List.of(1, 3, 10).contains(x)
Stream.of(1, 3, 100).anyMatch(i -> i == x)
0624 ◆QZaw55cn4c (ワッチョイ 6260-oeap [131.129.101.78 [上級国民]])
垢版 |
2018/10/21(日) 18:45:27.07ID:gNVlu9Yw0
>>616
>継承じゃなく委譲
最近、この問題はコンストラクタの記述能力に依存することがわかってきました
継承を使う場合、Java のコンストラクタで書ける内容が C++ のコンストラクタでは書けない、ならばおしなべて委譲にするしかない、と
0625デフォルトの名無しさん (アウアウウー Sa45-L0SM [106.132.128.174])
垢版 |
2018/10/21(日) 19:45:35.27ID:0dWokXAIa
>>619
swith使えばいいのでは?

swithはbreakさせなければ下に抜けるからな。

switch (x) {
case 1:
case 3:
case 10:
 System.out.println(x);
}

なんていう風に書いとくとxが 1, 3, 10 の時だけ出力するよ。
0628デフォルトの名無しさん (ワッチョイ 82eb-uJJU [219.105.104.142])
垢版 |
2018/10/22(月) 04:20:27.70ID:UcRlErit0
bronze取ったら現場探したほうがええんか?
未熟さで迷惑かけて対人ストレスとか抱えるくらいならsilverくらい取ってからにしようかと思うんだけど
いやまぁ資格と現場で使えるかが別物ってのはとりあえず置いといてよ
0629名無しさん@そうだ選挙に行こう! Go to vote! (ブーイモ MM0d-hSSp [210.149.251.242])
垢版 |
2018/10/22(月) 08:37:05.02ID:gS6quPUmM
bronzeは「わたしはjavaができません」と申告してるようなもんだから
書かないほうがよいのでは?w
0630名無しさん@そうだ選挙に行こう! Go to vote! (アウアウカー Sa89-dUTK [182.251.132.225])
垢版 |
2018/10/22(月) 10:01:40.15ID:3rTgJh0aa
>>626
現場離れた部長が技術分かる奴なんじゃないの?
別に特定の言語を知らなくても何か一つ言語使えてれば、他の言語の文法覚えるだけで即戦力(扱い)だし。

本当に未経験でも結果的に使える奴になれば良いけどね。
0631デフォルトの名無しさん
垢版 |
2018/10/22(月) 12:21:35.68
abcdeの末尾がeならokと出力したいのですが
↓では期待通りにならないのですが
どうしたら上手くいくか教えて下さい。

String word= "abcde";

if(word.matches("e$"))System.out.println("ok");
0634デフォルトの名無しさん
垢版 |
2018/10/22(月) 12:55:50.18
ありがとうございます
修正して
if(word.matches(".+e$"))System.out.println("ok");

で期待通りになったんですが、
これでもいいのかな。
0635デフォルトの名無しさん (ワッチョイ ee80-6qH8 [153.177.171.243])
垢版 |
2018/10/22(月) 18:59:00.82ID:u6NjsIb00
Ruby でやったけど、文字列が、"e" だけの場合に「.+ .*」で違いがある

"e".match /.+e$/
#=> nil

"e".match /.*e$/
#=> "e"
0636デフォルトの名無しさん (アウアウウー Sa45-L0SM [106.132.136.44])
垢版 |
2018/10/22(月) 19:08:12.53ID:8WYgXfgna
>>635
*は直前の文字が0文字以上で+は直前の文字が1文字以上なのでそうなって当然だと思う。
0638デフォルトの名無しさん (ワッチョイ 81b6-/3OO [220.208.88.117])
垢版 |
2018/10/22(月) 20:46:03.82ID:Ohiki0Rb0
式の評価順について教えてください
下記のプログラムで
カッコが先に処理されて
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;
}
0641デフォルトの名無しさん (ワッチョイ 81b6-/3OO [220.208.88.117])
垢版 |
2018/10/22(月) 22:09:05.28ID:Ohiki0Rb0
>>639
それのどこに書いてあるのか教えて欲しいのです
0642デフォルトの名無しさん (ワッチョイ 81b6-/3OO [220.208.88.117])
垢版 |
2018/10/22(月) 22:09:45.42ID:Ohiki0Rb0
>>640
文字列は表示してるだけで戻り値はintですよ
0644デフォルトの名無しさん (ワッチョイ 81b6-/3OO [220.208.88.117])
垢版 |
2018/10/22(月) 22:29:43.80ID:Ohiki0Rb0
>>643
ありがとうございます!ありました!
0645デフォルトの名無しさん (ワッチョイ ee80-6qH8 [153.177.171.243])
垢版 |
2018/10/22(月) 22:57:47.71ID:u6NjsIb00
ああ、文の評価順序を確かめたかったのか

たぶん左から評価して、その値を、( )の優先順位で足していくのだろう

a[0] = 0 + (0 + (0 + 0))
a[0] = 0 + (0 + 0)
a[0] = 0 + 0
a[0] = 0

これは、知っていないとマズイ。
漏れも、知らなかったけど
0647デフォルトの名無しさん (ワッチョイ 069f-d4gP [175.134.57.7])
垢版 |
2018/10/23(火) 01:37:49.72ID:SDpmiZwh0
>>645
元の質問は括弧の中から計算していきそうなのにそうではなかったので仕様が知りたかったということだよ。
0648デフォルトの名無しさん (ワッチョイ 069f-nBLa [175.134.57.7])
垢版 |
2018/10/23(火) 02:55:50.13ID:SDpmiZwh0
>>631
それ実際に実行されるのはこれだ。
java.util.regex.Pattern.compile("e$").matcher(word).matches()
最後の matches() は java.util.regex.Matcher クラスのメソッドだ。
ドキュメントには「領域全体をこのパターンとマッチします。」と書いてある。
全体とだ。つまりパターンには前後に隠された ^$ が最初から入っているような状態になる。
なので例えば word が "e" ならマッチするが e の前後に一文字でも何かあればマッチしない。
だから ".*e$" だとマッチする。(というか最後の $ は不要)

grep コマンドへ与えるパターンみたいにやりたい場合は Matcher クラスのインスタンスで find() したりするしかない。
0650デフォルトの名無しさん (アウアウウー Sa45-L0SM [106.132.133.223])
垢版 |
2018/10/23(火) 11:26:07.55ID:QwHjyvjPa
>>649
正規表現不要ならそっちの方が分かりやすいな。
0652デフォルトの名無しさん (ワッチョイ ee80-6qH8 [153.177.171.243])
垢版 |
2018/10/24(水) 02:19:49.67ID:2LYWqLo00
>>638
Ruby で以下を実行したら、ABCDE の順番になった

ary = [ ]

def getValue ( str )
puts str; 0
end

ary[ getValue("A") ] = getValue("B") + ( getValue("C") + ( getValue("D") + getValue("E") ) );
0653デフォルトの名無しさん (アウアウウー Sa45-tSmu [106.181.125.27])
垢版 |
2018/10/24(水) 08:47:38.46ID:XKgg3tJUa
()は決して先に計算するという意味ではなく、結合の優先順位を変えるんだよ
a = (b + c) + f(x) は、=, +についてもそれぞれを引数2つの関数とみると
=(a, +(+(b, c), f(x))
というツリー構造になる
これをどういう順序で評価するかはいくつかやり方があるが、
Javaや糞Ruby糞を含む多くの言語では正格評価と呼ばれる方式が採用されており、これは外側の関数から内側の順に式を評価する
引数リスト中での評価順序は言語によって様々だが、Javaの場合は原則的に左から右の順に評価する
0654デフォルトの名無しさん (ワッチョイ 1965-nBLa [222.15.235.177])
垢版 |
2018/10/24(水) 10:14:03.79ID:hDrHSdWT0
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
0657デフォルトの名無しさん (アウアウウー Sa45-L0SM [106.132.135.216])
垢版 |
2018/10/24(水) 12:15:04.76ID:k2aW8IHEa
>>654
メソッドを呼んで値を取り出す順序とその後の計算順序が違うってことかな?
0658デフォルトの名無しさん (アウアウウー Sa45-L0SM [106.132.135.216])
垢版 |
2018/10/24(水) 12:19:07.90ID:k2aW8IHEa
>>655
他を使えば?
0660デフォルトの名無しさん (ワッチョイ ee80-6qH8 [153.177.171.243])
垢版 |
2018/10/24(水) 23:47:39.01ID:2LYWqLo00
paiza, codepad は、ログイン無しで書ける

評価順序・結合規則は、異なる概念

「式1 演算子 式2」がある時に、式内に何かの状態を変える副作用があるとか、
変数を共有していたりすると超危険!

バグる・勘違いする
0678デフォルトの名無しさん (ワッチョイ 22d2-8L5D [27.139.3.34])
垢版 |
2018/10/30(火) 12:30:56.41ID:8/9eZ6sC0
歴史年表をデータ化して
ランダム4択クイズみたいの作ってたなあ
当時はDBなんて知らないから
ソースにベタ書きだが
0685デフォルトの名無しさん (アウアウウー Sae3-hDoO [106.132.120.52])
垢版 |
2018/10/31(水) 12:51:34.27ID:umCB7isma
最初に?というとこんなやつかな。

10 PRINT "*";
20 GOTO 10
0686デフォルトの名無しさん (ブーイモ MM9a-gvvc [49.239.67.180])
垢版 |
2018/10/31(水) 15:52:18.08ID:P9zyHHGGM
*
*
*
*
*
*
*
*
*
*
BREAK AT 10
0687デフォルトの名無しさん (アウアウウー Sae3-hDoO [106.132.120.52])
垢版 |
2018/10/31(水) 17:19:04.35ID:umCB7isma
マイコンの素晴らしさに感動。
これがあればなんでもできる。

と、本気で思った。
0691デフォルトの名無しさん (ワッチョイ a69f-PRUr [121.111.15.11])
垢版 |
2018/11/04(日) 11:32:46.08ID:hQdPSgHl0
ブリッジパターンの応用手順のブログみたい。パッケージを開発する時を前提にしているね。
https://blogs.yahoo.co.jp/kamyu_2010/35480077.html
0694デフォルトの名無しさん (ワッチョイ 6e9f-eUrQ [175.134.57.7])
垢版 |
2018/11/04(日) 15:02:34.71ID:eEexL0w40
              \   ∩─ー、
                \/ ● 、_ `ヽ
                / \( ●  ● |つ
                |   X_入__ノ   ミ 俺は釣られないクマ ・・・
                 、 (_/   ノ
                 \___ノ゙
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::
               / /へ ヘ/ /:::
               / \ ヾミ  /|:::
              (__/| \___ノ/:::
0698デフォルトの名無しさん (アウアウウー Sa6b-AdN2 [106.132.120.66])
垢版 |
2018/11/05(月) 09:20:20.54ID:fSW0Oxfca
悔い改めよ
0700デフォルトの名無しさん (アウアウウー Sa6b-AdN2 [106.132.120.66])
垢版 |
2018/11/05(月) 11:13:59.19ID:fSW0Oxfca
慣れの問題と何を作るかの問題だな。
0703デフォルトの名無しさん (アウアウウー Sabf-orkQ [106.180.15.233])
垢版 |
2018/11/11(日) 21:19:15.74ID:ajreNdVSa
ttps://pastebin.com/5QkYYhdg
Stringのインデックスエラーが出るのですが、何かいけないのでしょうか?
0704デフォルトの名無しさん (アウアウカー Sa9b-Gc0T [182.251.134.39])
垢版 |
2018/11/11(日) 21:22:14.23ID:B3f/927da
Java有料化で仕事無くなるかもなのに頑張るのか。。。
0707デフォルトの名無しさん (ワッチョイ fbb6-aHr0 [220.208.88.117])
垢版 |
2018/11/11(日) 23:54:14.92ID:/c5AFHPv0
>>703
charIndexがリセットされないのがいけない

"123456"を表示するときにcharIndexは0から5に増えて
"7"を表示するときにcharIndexは5だからNG
0708デフォルトの名無しさん (アウアウエー Saa2-orkQ [111.239.255.57])
垢版 |
2018/11/12(月) 19:49:08.82ID:x1RQowFZa
>>707
ありがとうございます。

breakの前にcharIndex=0を設定することでエラーは解消されました!
0710デフォルトの名無しさん (ワッチョイ 03b6-gXlk [220.208.88.117])
垢版 |
2018/11/15(木) 07:19:32.06ID:xSjlziKZ0
>>709
ないです、素朴に数えましょう
0713デフォルトの名無しさん (アウアウウー Sac7-AAco [106.132.124.87])
垢版 |
2018/11/15(木) 09:43:30.75ID:RDhHOc3na
>>709
同じ文字を含むなら (.).*\1 でできると思うので、プログラムの側でこれにマッチしないものを処理すれば良いのではないかな。
0715デフォルトの名無しさん (ワッチョイ 8f9f-z0W7 [113.153.104.20 [上級国民]])
垢版 |
2018/11/15(木) 15:12:37.43ID:pPH/bz/I0
>>713
ありがとうございます。
参考にさせてもらって、その正規表現の効果をぐぐって見て
自分でもいけそうな気がしたのですが。
NGになってしまいます。
何が間違えてますか・・・

String a ="aac";

if(a.matches("(.).*\1")){

System.out.println("OK");

}else{

System.out.println("NG");

}

>>712
>>714
ありがとう、ございます。
それらとは別のやり方ですがヒントになりました。
特定の文字をAllreplaceで""にして原本とのlength()の差で
選別する感じでひとまずいけました。
■ このスレッドは過去ログ倉庫に格納されています

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