import java.util.stream.Collectors;

public class AngkaDariTeks {

    public static void main(String[] args) {
        String nama = "Budi Santoso";

        // chars(): IntStream berisi kode Unicode tiap karakter
        long jumlahHuruf = nama.chars()
            .filter(c -> !Character.isWhitespace(c))
            .count();
        System.out.println("Jumlah huruf (tanpa spasi) = " + jumlahHuruf);

        long jumlahVokal = nama.chars()
            .filter(c -> "aeiouAEIOU".indexOf(c) >= 0)
            .count();
        System.out.println("Jumlah vokal               = " + jumlahVokal);

        // mapToObj: ubah int menjadi objek String agar bisa di-join
        String dipisah = nama.chars()
            .mapToObj(c -> String.valueOf((char) c))
            .collect(Collectors.joining("-"));
        System.out.println("Per karakter               = " + dipisah);

        // boxed: bungkus int menjadi Integer untuk kebutuhan Collection
        System.out.println("Kode 4 huruf pertama       = " + nama.chars().limit(4).boxed().toList());
    }
}
