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