let's learn java language

I learning java language.

言語処理100本ノック 第2章: UNIXコマンドの基礎 10,11

10. 行数のカウント

行数をカウントせよ.確認にはwcコマンドを用いよ.

java

@Slf4j
public class App {
    public static void main(String[] args) {
        try {
            Path path = Paths.get(String.valueOf(args[0]));
            if (Files.isReadable(path)) {
                List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
                log.info("lines: {}", lines.size());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

11. タブをスペースに置換

タブ1文字につきスペース1文字に置換せよ.確認にはsedコマンド,trコマンド,もしくはexpandコマンドを用いよ.

java

@Slf4j
public class App {
    public static void main(String[] args) {
        if (args.length > 0) {
            try {
                Path path = Paths.get(String.valueOf(args[0]));
                if (Files.isReadable(path)) {
                    List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
                    log.info("lines: {}", lines.size());
                    List<String> lines2 = new ArrayList<>();
                    lines.forEach(l -> lines2.add(l.replace("\t", " ")));
                    System.out.println(String.join("\n", lines2));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}