Followers

Saturday, March 9, 2019

Membuat kotak disekitar text JAVA

Mulai dengan menulis perintah untuk mendapatkan panjang maksimum dari String.

Kode:
private static int getMaxLength(String... strings) {
        int len = Integer.MIN_VALUE;
        for (String str : strings) {
            len = Math.max(str.length(), len);
        }
        return len;
    }

Selanjutnya, buat methode untuk mengisi String yang tersisa, agar terisi otomatis mengikuti panjang Strings

Kode:
private static String padString(String str, int len) {
        StringBuilder sb = new StringBuilder(str);
        return sb.append(fill(' ', len - str.length())).toString();
    }
Selanjutnya, isi String dengan pengulangan karakter

Kode:
private static String fill(char ch, int len) {
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            sb.append(ch);
        }
        return sb.toString();
    }

Kemudian, buatlah method printBox untuk menentukan panjang dari String terpanjang. Buatlah pembatas bagian atas dengan bawah. Kemudian ulangi string untuk memberikan padding(jika perlu) pada String dan kemudian menggunakan output yang diformat- | str |, seperti kode berikut:

Kode:
public static void printBox(String... strings) {
        int maxBoxWidth = getMaxLength(strings);
        String line = "+" + fill('-', maxBoxWidth + 2) + "+";
        System.out.println(line);
        for (String str : strings) {
            System.out.printf("* %s |%n", padString(str, maxBoxWidth));
        }
        System.out.println(line);
    }

Terakhir, untuk menampilkan text yang dibungkus dengan kotak dengan cara memanggil method printBox

Kode:
public static void main(String[] args) {
    printBox("Thie is some", "text here.");
}

Full code:
public class borderBox {
    private static int getMaxLength(String... strings) {
        int len = Integer.MIN_VALUE;
        for (String str : strings) {
            len = Math.max(str.length(), len);
        }
        return len;
    }
    private static String padString(String str, int len) {
        StringBuilder sb = new StringBuilder(str);
        return sb.append(fill(' ', len - str.length())).toString();
    }
    private static String fill(char ch, int len) {
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            sb.append(ch);
        }
        return sb.toString();
    }
    public static void printBox(String... strings) {
        int maxBoxWidth = getMaxLength(strings);
        String line = "+" + fill('-', maxBoxWidth + 2) + "+";
        System.out.println(line);
        for (String str : strings) {
            System.out.printf("* %s |%n", padString(str, maxBoxWidth));
        }
        System.out.println(line);
    }
    public static void main(String[] args) {
        printBox("this some text", "text text text"
        ,"this long text, long text, long text");
    }

}


Output:
+--------------------------------------+
* this some text                       |
* text text text                       |
* this long text, long text, long text |
+--------------------------------------+

2 comments: