##汎用性ってむずかしい
入力された文字列を「,」で区切って配列にして個数を数えて100倍してコンソールに出力する処理
は?.java
package ha;
import java.util.Arrays;
public class Trash {
private static final String HA_IMIWAKANNAI = ",asd,asdadas,asda,sdas,asdasd,,asdasd,,,asd,";
public static void main(String[] args) {
trash(HA_IMIWAKANNAI);
}
private static void trash(String str) {
System.out.println(100 * Arrays.asList(str.split(",")).size());
}
}
意味わかんないというか何の役に立つのかわからん
汎用性のかけらもないよね
いつつかうんこれ
てことで
##1つの処理でとめよう!
入力された文字列を「,」で区切って
配列にして
個数を数えて
100倍して
コンソールに出力する処理
改変.java
package ha;
import java.util.Arrays;
import java.util.List;
public class Trash {
private static final String HA_IMIWAKANNAI = ",asd,asdadas,asda,sdas,asdasd,,asdasd,,,asd,";
public static void main(String[] args) {
trash(HA_IMIWAKANNAI);
}
private static void trash(String str) {
// System.out.println(100 * Arrays.asList(str.split(",")).size());
sysout(hundred(count(toArray(separate(str)))));
}
// 分割
private static String[] separate(Object obj) {
return obj.toString().split(",");
}
// リストに
private static List<String> toArray(String[] str) {
return Arrays.asList(str);
}
// 数える
private static int count(List<String> list) {
return list.size();
}
// 100倍
private static Integer hundred(int num) {
return num * 100;
}
// 出力
private static void sysout(Object obj) {
System.out.println(obj);
}
}
分けすぎわろた
まぁ汎用性は上がってますよね
一部、他でも使えると思うので!
StringUtilを自作する人も多いんじゃないでしょうか
##Object型
これ便利よね
IteretorとかTとかSetとか、初心者はまだ知らないやつ、ほんと便利なので調べてみてほしいです
forをより汎用的にしたのがiterator
順番とか気を付けたListやMapなどのCollectionsがSet
なんでもいい型がT
Objectもなんでもおkなクラス
どうしても型の縛りで同じ処理を複数作らされたりとかする時は
是非こいつらを使って一括で行けないか考えてみましょ
ただ下手にOptionalを使ってnullを許容してしまうと
事故になりかねないので、注意しましょうね
汎用性ってスゴイ