package javacodebook.core.stringtools; import java.util.Random; /** * Texte ausrichten und in der Breite anpassen. */ public class AlignTextStarter { /** * Auszug aus einer ToDo-Liste */ public static void main(String []args) { String []toDo = { "Source-Code", "Beschreibung", "Satz", "Sonstiges" }; String status[] = { "fertig", "In der mache", "Kommt noch", "Eigentlich wollte ich mich an dieser Stelle " + " richtig auslassen. Klappt aber leider nicht " }; String preis[] = { "100.00 EUR", "1000.00 EUR", "10000.00 EUR", "unbezahlbar" }; for (int i=0; iHTML maskieren\n" + "\n"; text = StringToolbox.replace(text, "<", "<"); text = StringToolbox.replace(text, ">", ">"); System.out.println(text); } } --- Neue Klasse --- package javacodebook.core.stringtools; import java.util.Random; /** * Eine Reihe von Methoden, die man immer mal gebrauchen * kann, die aber in der Klasse String nicht enthalten sind. */ public class StringToolbox { // Diese Zeichen werden zur Erzeugung von // Zufalls-Zeichen genutzt private static char[][] RANDOM_STR = { { 'a', 'e', 'i', 'o', 'u'}, { 'b', 'd', 'f', 'g', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'w' } }; private static Random RAND = new Random(System.currentTimeMillis()); public static String alignLeft(String str, int width) { str = str.trim(); int len = str.length(); // Text breiter als erlaubt -> abschneiden if (len > width && width >= 3) return str.substring(0, width-3) + "..."; if (len > width) return "...".substring(0, width); StringBuffer align; align = new StringBuffer(create(width, ' ')); align.replace(0, str.length(), str); return align.toString(); } public static String alignCenter(String str, int width) { str = str.trim(); int len = str.length(); // Text breiter als erlaubt -> hinten abschneiden if (len > width) return alignLeft(str, width); StringBuffer align = null; align = new StringBuffer(create(width, ' ')); int start = (width - len)/2; int end = start + len; align.replace(start, end, str); return align.toString(); } public static String alignRight(String str, int width) { str = str.trim(); int len = str.length(); // Text breiter als erlaubt -> hinten abschneiden if (len > width) return alignLeft(str, width); StringBuffer align = null; align = new StringBuffer(create(width, ' ')); align.replace(width - str.length(), width, str); return align.toString(); } /** * Erzeugt einen neuen String mit einer vorgegebenen * Länge und gefüllt mit dem Zeichen fill */ public static String create(int len, char fill) { char []buf = new char[len]; for (int i=0; i= 0) { tmp.append(text.substring(start, end)); tmp.append(newStr); start = end + oldLen; end = text.indexOf(oldStr, end+oldLen); } // Zum Schluss den letzten Rest des alten Strings // an den neuen hängen (Wenn es noch einen Rest // zum dranhängen gibt) tmp.append(text.substring(start)); return tmp.toString(); } /** * Erzeugt einen lesbaren String in der angegebenen * Laenge. Der Inhalt besteht aus zufällig ausgewählten * Zeichen. Es werden NICHT alle Zeichen des Alphabetes * genutzt! */ public static String randomWord(int length) { char[] res = new char[length]; int toggle=1, max=0; for (int i=0; i