Java練習コード CSVファイルから抽出したデータをCSVに保存

Java練習コード CSVファイルから抽出したデータをCSVに保存

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args){
        CSVReader();
    }

    public static void CSVReader() {
        String csvFile = "c03.csv";
        String outputFile = "write.csv";
        String line;
        String delimiter = ",";

        List<String[]> populationDataList = new ArrayList<>();

        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            // ヘッダー行を読み飛ばす
            br.readLine();

            // 1行ずつ読み込む
            while ((line = br.readLine()) != null) {
                String[] data = line.split(delimiter);

                // 各都道府県の「人口総数」のデータを抽出してリストに追加する
                if (data.length > 1 && data[2].equals("総数")) {
                    populationDataList.add(data);
                }
            }

            // 抽出したデータを表示する
            for (String[] data : populationDataList) {
                System.out.print("年齢5歳階級:" + data[2]);
                System.out.print("  元号:" + data[3]);
                System.out.print("  人口(総):" + data[6]);
                System.out.print("  人口(男):" + data[7]);
                System.out.println();
            }

            // データをファイルに保存する
            saveDataToFile(populationDataList, outputFile);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void saveDataToFile(List<String[]> dataList, String outputFile) {
        String delimiter = ",";
        boolean append = false; // 追記モードを無効にする

        try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile, append))) {
            // ヘッダー行を書き込む
            bw.write("都道府県コード,都道府県名,年齢5歳階級,元号,和暦(年),西暦(年),人口(総数),人口(男),人口(女)");
            bw.newLine();

            // データ行を書き込む
            for (String[] data : dataList) {
                bw.write(String.join(delimiter, data));
                bw.newLine();
            }

            System.out.println("データの保存が完了しました。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java練習コード ピラミッド

Java練習コード ピラミッド成形その1

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("ピラミッドの最大桁数を入力してください(奇数): ");
        int n = scanner.nextInt();
        // 入力された数字が偶数の場合は+1
        if (n % 2 == 0) {
            n++;
        }
        for (int i = 1; i <= n; i += 2) {
            for (int j = 0; j < (n - i) / 2; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < i; j++) {
                System.out.print(j < i / 2 + 1 ? j + 1 : i - j);
            }
            for (int j = 0; j < (n - i) / 2; j++) {
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

Java練習コード 3の倍数と5の倍数の表示

Java 倍数の表示その1

public class Main {
    public static void main(String[] args) {
        fizzBuzz(100);
    }

    public static void fizzBuzz(int n) {
        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                System.out.println(i + "FizzBuzz");
            } else if (i % 3 == 0) {
                System.out.println(i + "Fizz");
            } else if (i % 5 == 0) {
                System.out.println(i + "Buzz");
            }
        }
    }
}

Java練習コード 素数であるかどうかチェック

Java 素数その1

試し割り法

public class Main {

    public static void main(String[] args) {

        int primeNumber = 100; // 素数の数
        int count = 1; // 素数のカウント
        int num = 0;  // 数

        while (count <= primeNumber) {
            if (isPrimeNumber(num)) {
                System.out.println(count + " " +num);
                count++;
            }
            num++;
        }
    }

    //引数で渡された数が素数であるかどうかを判定するメソッド
    public static boolean isPrimeNumber(int num) {
        if (num < 2) {
            return false;
        }
        for (int i = 2; i <= num / 2; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}


エラトステネスのふるい

import java.util.Arrays;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        ArrayList<Integer> primes = sieveOfEratosthenes(100);
        for (int prime : primes) {
            System.out.println(prime);
        // for(int i = 0; i < primes.size(); i++){
          // System.out.println(primes.get(i);
        }
    }

    public static ArrayList<Integer> sieveOfEratosthenes(int n) {
        boolean[] isPrime = new boolean[n + 1];
        Arrays.fill(isPrime, true);
        isPrime[0] = false;
        isPrime[1] = false;
    
        for (int i = 2; i * i <= n; i++) {
            if (isPrime[i]) {
                for (int j = i * i; j <= n; j += i) {
                    isPrime[j] = false;
                }
            }
        }
    
        ArrayList<Integer> primes = new ArrayList<>();
        for (int i = 0; i <= n; i++) {
            if (isPrime[i]) {
                primes.add(i);
            }
        }
        return primes;
    }
    
}