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 | +--------------------------------------+
Wah mantep, ilmu baru
ReplyDeleteSangat membantu terumakasih
ReplyDelete