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:
  1. public class borderBox {
  2. private static int getMaxLength(String... strings) {
  3. int len = Integer.MIN_VALUE;
  4. for (String str : strings) {
  5. len = Math.max(str.length(), len);
  6. }
  7. return len;
  8. }
  9. private static String padString(String str, int len) {
  10. StringBuilder sb = new StringBuilder(str);
  11. return sb.append(fill(' ', len - str.length())).toString();
  12. }
  13. private static String fill(char ch, int len) {
  14. StringBuilder sb = new StringBuilder(len);
  15. for (int i = 0; i < len; i++) {
  16. sb.append(ch);
  17. }
  18. return sb.toString();
  19. }
  20. public static void printBox(String... strings) {
  21. int maxBoxWidth = getMaxLength(strings);
  22. String line = "+" + fill('-', maxBoxWidth + 2) + "+";
  23. System.out.println(line);
  24. for (String str : strings) {
  25. System.out.printf("* %s |%n", padString(str, maxBoxWidth));
  26. }
  27. System.out.println(line);
  28. }
  29. public static void main(String[] args) {
  30. printBox("this some text", "text text text"
  31. ,"this long text, long text, long text");
  32. }
  33.  
  34. }
  35.  

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

2 comments: