Strings mit variabler Länge auffüllen

melesch

Mitglied
Hallo,
versuche seit einiger Zeit eine Methode zu erstellen die einen String mit der Länge n mit dem Char c auffüllt. Leider kommt immer ein leerer String heraus 🙁

Es ist sicher nur etwas kleines aber ich kann es leider nicht finden :shock:


main Methode
Code:
public class BarPlot {
	static char c = 6;
	public static void main(String[] args) {
		System.out.println(repeat(c, 5));
	}

Methode repeat
Code:
	static String repeat(char c, int n) {
		String value =" ";
		String plus = String.valueOf(c);
		        while (value.length() < n) { 
		            value = value + plus; 
		        } 
		        return value; 
	}

Wäre nett wenn mir wer helfen könnte 🙂

lg
 
Hoffe das der Code das macht, was du willst.
Ist mit Hilfe eines Stringbuilders gelöst. Achte darauf, einen Char immer mit ' ' zu schreiben.

Java:
public class Test
{
    public static void main(String[] args)
    {
	System.out.println(repeat('a', 5));
    }

    static String repeat(char c, int n)
    {	
	StringBuilder sb = new StringBuilder();
	
	for( int i = 0; i < n; i++)
	{
	    sb.append(c);
	}
	return sb.toString();
    }
}
 
Zuletzt bearbeitet:
Ich glaube dein Problem ist folgendes
Code:
static char c = 6;
der char mit dem Wert 6 ist nix, beu dem beispiel vom Spewer wird der
Code:
char 'a'
übergeben, der nunmal a beinhaltet und somit ein darstellvarer char, versuch spaseshalber mal deins entweder so
Code:
static char c = '6';
oder dein aufruf so wie bei Spewer
Code:
System.out.println(repeat('c', 5));
 
du ignorierst ja einfach sein
Code:
static char c = 6
. Das ist das ACKNOWLEDGE-Zeichen, ein nicht darstellbares Zeichen. Wenn du davon mehrere hintereinander packst sieht das Ergebnis aus wie ein String ohne Inhalt.
Wenn du versicht das Zeichen
Code:
'6'
in c zu speichern, musst du es auch als Zeichen und nicht als Zahl übergeben.
[EDIT]zu langsam.. mal wieder :bahnhof:[/EDIT]
 
Java:
public static String repeat(char c, int n) {
    char[] cs = new char[n];
    java.util.Arrays.fill(cs,c);
    return new String(cs);
}


Deine Version:

Java:
static String repeat(char c, int n) {
    String value ="";
    while (value.length() < n) { 
         value += c; 
    } 
    return value; 
}

Wobei man in "richtigem Code" tatsächlich einen
Code:
StringBuilder
nehmen sollte (ansonsten wird in jedem Schleifendurchlauf ein neues String-Objekt erzeugt).
 
Zuletzt bearbeitet:

Zurück
Oben