Java Sting mit 6 Stellen ausgeben?

...komplette Frage anzeigen

3 Antworten

Ohne es gestestet zu haben:

String s = String.format("#%02x%02x%02x", r, g, b);

Danke, hat super funktioniert!!!!!

0

"wie das geht, dass du die länge von dem int oder string rausbekommst, also die anzahl der stellen, weiß ich leider auch nicht."

-- ich probier mal was aus. könnte langer dauern, also warte ein bisschen... wenn ichs rausgefunden hab, schreib ich wieder

System.out.print("#" + if (hex nur 4 stellen lang) { "00" } else { if (hex nur 5 stellen lang) { "0" } } + hex);

wenn in 'hex' deine zahl steht. wie das geht, dass du die länge von dem int oder string rausbekommst, also die anzahl der stellen, weiß ich leider auch nicht.

hoffe ich konnte wenigstens etwas helfen

Sry an Antworter, aber diese Antwort ist mit Vorsicht zu genießen.

Beispiel: Bei r=1, g=2, b=3 käme "#123" raus (bzw "#00123" wenn man auf <4 Stellen prüft) , was fasch wäre. Richtig wäre "#010203".

Anderes Beispiel: r=255, g=0, b=255 wäre "#00ffff" anstatt von "#ff00ff" (also wäre das Ergebnis nicht das erwartete Magenta, sondern Cyan)

Der Ansatz müsste schon komponentenweise erfolgen, also pro Farbe checken ob der ErgebnisString <2 ist und gegebenenfalls eine Null anhängen und dann die 3 Strings pro Farbe (+ das '#') konkatenieren.

Aber da finde ich den Ansatz in meiner Antwort effizienter.

0

Was möchtest Du wissen?