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 karakterKode:
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