509 Stimmen

Wie kann ich einen String in Java auffüllen?

Gibt es eine einfache Möglichkeit, Strings in Java aufzufüllen?

Scheint wie etwas, das in einige StringUtil-ähnliche API sein sollte, aber ich kann nichts finden, die dies tut.

29voto

Arne Burmeister Punkte 19217

Werfen Sie einen Blick auf org.apache.commons.lang.StringUtils#rightPad(String str, int size, char padChar) .

Der Algorithmus ist jedoch sehr einfach (Auffüllen bis zur Größe der Zeichen):

public String pad(String str, int size, char padChar)
{
  StringBuilder padded = new StringBuilder(str);
  while (padded.length() < size)
  {
    padded.append(padChar);
  }
  return padded.toString();
}

22voto

Miserable Variable Punkte 27724

Neben Apache Commons, siehe auch String.format die in der Lage sein sollte, einfache Auffüllungen (z. B. mit Leerzeichen) zu übernehmen.

20voto

Eko Setiawan Punkte 180

Seit Java 11 kann String.repeat(int) verwendet werden, um eine gegebene Zeichenkette links/rechts aufzufüllen.

System.out.println("*".repeat(5)+"apple");
System.out.println("apple"+"*".repeat(5));

Ausgabe:

*****apple
apple*****

16voto

Eduardo Punkte 177
public static String LPad(String str, Integer length, char car) {
  return (str + String.format("%" + length + "s", "").replace(" ", String.valueOf(car))).substring(0, length);
}

public static String RPad(String str, Integer length, char car) {
  return (String.format("%" + length + "s", "").replace(" ", String.valueOf(car)) + str).substring(str.length(), length + str.length());
}

LPad("Hi", 10, 'R') //gives "RRRRRRRRHi"
RPad("Hi", 10, 'R') //gives "HiRRRRRRRR"
RPad("Hi", 10, ' ') //gives "Hi        "
RPad("Hi", 1, ' ')  //gives "H"
//etc...

9voto

OJVM Punkte 1233

Gefunden auf Dzone

Mit Nullen auffüllen:

String.format("|%020d|", 93); // prints: |00000000000000000093|

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X