# Bestimmte Anzahl Zeichen aneinander fügen



## jf (10. Apr 2012)

Hallo, mich interessiert, ob es in Java bereits eine vorgefertigte Funktion gibt, welche ein bestimmtes Zeichen mehrmals aneinander fügt, bis eine definierte Länge erreicht ist.

Bsp.:

```
String("\t", 3) => liefert "\t\t\t"
Space(10)       => liefert "          "
```


----------



## ARadauer (10. Apr 2012)

nö gibt es leider nicht


----------



## k3ltis (10. Apr 2012)

jf hat gesagt.:


> Hallo, mich interessiert, ob es in Java bereits eine vorgefertigte Funktion gibt, welche ein bestimmtes Zeichen mehrmals aneinander fügt, bis eine definierte Länge erreicht ist.
> 
> Bsp.:
> 
> ...



Wie wärs, wenn du eine schreibst?


----------



## pl4gu33 (10. Apr 2012)

```
public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("Start>");
	        System.out.print(zeichen("\\t",3));
		System.out.print(zeichen(" ",10));
		System.out.print("<Stopp");
	}
	
	public static String zeichen(String s, int anzahl){
		String tmp = "";
		
		for(int i=0;i<anzahl;i++){
			tmp+=s;
		}		
		return tmp;		
	}
```


----------



## jf (10. Apr 2012)

k3ltis hat gesagt.:


> Wie wärs, wenn du eine schreibst?


Darum geht es ja gerade: so eine allgemeine Funktion gehört hinsichtlich code reuse meines Erachtens nach in ein Bibliotheks-Projekt. Jetzt finde ich es aber etwas hässlich, wenn ich meine komplette Bibliothek einbinden muss, nur um die 3 Zeilen Quelltext verwenden zu können. Ein eigenes Bibliotheks-Projekt nur für diese 3 Zeilen anzulegen ist noch größerer Humbug. - Daher die Frage, ob es solch eine Funktion bereits gibt.

Und da es leider keine gibt (siehe Antwort von _ARadauer_), muss ich ja wohl selber eine schreiben und mir Gedanken machen, wo ich sie denn nun am besten unterbringe...
=> Darum ging es in dieser Frage. Deine Antwort war wenig hilfreich. Bitte stets die genaue Frage beachten. 

@pl4gu33:
Ok, solch eine Funktion bekomme ich selber auch noch hin. 
Trotzdem danke.


----------



## tfa (10. Apr 2012)

In den Apache commons.lang StringUtils gibt es eine solche Methode:

StringUtils (Lang 2.3 API)


----------



## SlaterB (10. Apr 2012)

eine eigene 'Bibliothek' an allgemeinen Methoden muss man quasi immer hinzufügen, es gibt so vieles was es nicht gibt,
keine große Sache

> Bitte stets die genaue Frage beachten.

bitte stets genaue Frage stellen,
die Eigenimplementierung war extrem naheliegend, die Gedanken dieses Postings hättest du schon am Anfang schreiben
und anderen die mühevolle selbstlose Arbeit der Aufzählung gewisser zugehöriger Punkte ersparen können


----------



## jf (10. Apr 2012)

SlaterB hat gesagt.:


> eine eigene 'Bibliothek' an allgemeinen Methoden muss man quasi immer hinzufügen, es gibt so vieles was es nicht gibt, keine große Sache


Ich schreibe aber gerade eine Android-Anwendung, in welche man leider nur Android-Projekte einbinden kann. Zum Glück kann man umgedreht ein Android-Projekt in den ClassPath eines Standard-Java-Projektes aufnehmen. Da es aber wenig Sinn macht, spezielle Android-Klassen in ein Standard-Java-Projekt mit aufzunehmen, benötigt es schon mindestens zweier Android-Projekte: _Common_ und _CommonAndorid_. Ok, wenn ich dieses zweite Projekt anlege, dann ist der geeignete Ort klar.
Allerdings habe ich für meine ersten Android-Test zunächst einen eigenen Workspace angelegt. Wenn ich ausreichend Erfahrung mit Android gesammelt habe, werde ich versuchen alles in einen zu bekommen: Standard-Java-Projekte, MIDlet-Projekte und Android-Projekte (wobei ich mir bei den MIDlet-Projekten noch nicht sicher bin, da hier nur Java 1.4 eingesetzt werden kann und damit auch die Bibliotheks-Klassen -sofern sie hierfür verfügbar sein sollen- ebenfalls auf diese Version beschränkt werden).
Nunja, es ist also doch nicht immer ganz so einfach, wie es manchmal scheint. Vermeiden wöllte ich auf jeden Fall das Implementieren einer Funktion in unterschiedlichen Bibliotheken, da dies bei der Pflege recht hinderlich ist. Ok, bei dieser kleinen Funktion sollten keine Fehler auftreten. Aber wenn ich sie aus einem Import bekommen kann, dann wäre mir dass natürlich wesentlich lieber.

Da die Apache-Lib sicher etwas größe ist (vielen Dank nochmal an _tfa_ für die Info), was für eine Android-App nicht so günstig ist, habe ich mich dazu entschlossen, die Funktion doch lokal zu implementieren, dafür aber nicht so allgemein:


```
private String getIndent(int level) {
		StringBuffer buf = new StringBuffer();
		
		while(level-- > 0) {
			buf.append("\t");
		}
		
		return buf.toString();
	}
```



SlaterB hat gesagt.:


> bitte stets genaue Frage stellen


Was ist an _"mich interessiert, ob es in Java bereits eine vorgefertigte Funktion gibt"_ ungenau?



SlaterB hat gesagt.:


> die Eigenimplementierung war extrem naheliegend


Richtig, weshalb mich die Aussage _"Wie wärs, wenn du eine schreibst?"_ auch etwas irritierte...
Darauf wäre doch jeder von selber gekommen - womit sich meine Frage selbst ja erübrigt hätte.



SlaterB hat gesagt.:


> die Gedanken dieses Postings hättest du schon am Anfang schreiben und anderen die mühevolle selbstlose Arbeit der Aufzählung gewisser zugehöriger Punkte ersparen können


Mein Frage war eigentlich klar formuliert.
Aber ich werde in Zukunft versuchen, durch Hinweise wie _"PS: es geht nicht um eine Eigenimplementierung"_, Missverständnisse zu vermeiden. 

Für die Arbeit, welche _pl4gu33_ mit meiner Frage hatte, habe ich mich natürlich selbstredend bedankt - auch wenn es keine direkte Antwort auf meine Frage war.

Ich hoffe meine Antworten erschienen nicht unhöfflich - ich habe je extra Smilies gesetzt.


----------



## k3ltis (10. Apr 2012)

jf hat gesagt.:


> Darum geht es ja gerade: so eine allgemeine Funktion gehört hinsichtlich code reuse meines Erachtens nach in ein Bibliotheks-Projekt. Jetzt finde ich es aber etwas hässlich, wenn ich meine komplette Bibliothek einbinden muss, nur um die 3 Zeilen Quelltext verwenden zu können. Ein eigenes Bibliotheks-Projekt nur für diese 3 Zeilen anzulegen ist noch größerer Humbug. - Daher die Frage, ob es solch eine Funktion bereits gibt.
> 
> Und da es leider keine gibt (siehe Antwort von _ARadauer_), muss ich ja wohl selber eine schreiben und mir Gedanken machen, wo ich sie denn nun am besten unterbringe...
> => Darum ging es in dieser Frage. Deine Antwort war wenig hilfreich. Bitte stets die genaue Frage beachten.
> ...



Ich wollte dir nicht zu Nahe treten 

Nichts für ungut. Ich bin lediglich der Meinung, solche Methoden bzw. Klassenmethoden selbst zu schreiben ist die bestmögliche Übung um in Java am Ball zu bleiben. Meine vllt etwas forsche Antwort sollte nur zu deinem Besten dienen...

lg
k3ltis


----------



## Landei (10. Apr 2012)

Die performanteste Lösung ist:


```
char[] blubbArray = new char[16];
java.util.Arrays.fill(blubbArray, '#');
String blubb = new String(blubbArray);
```


----------

