Java: Sonderzeichen löschen und Leerzeichen ersetzen? Stringbuilder?

1 Antwort

Gegeben sei ein String str, und dein StringBuilder sz. Dann:

foreach (char c in str) {
  if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '.'){
    sz.Append(c);
  }
  else if(c == ' ') sz.Append('&');
}
return sz.ToString();

Zu Deutsch:

Für jedes Zeichen des Strings:

Wenn das Zeichen zwischen 0 und 9 liegt, oder zwischen a und z, oder zwischen A und Z, oder ein . , dann wird es beim Output-String angehängt (weil es kein Sonderzeichen ist). Sonderzeichen hingegen werden einfach übersprungen / nicht angehängt. Und wenn das Zeichen eine Leertaste ist wird beim Ouput ein & angehängt.

Und dann wird der Output String zurückgegeben.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
regex9  20.06.2020, 18:30

Du hast da etwas verwechselt. Die Frage bezieht sich auf Java, nicht C#.

In Java sieht eine foreach-Schleife so aus:

for (char letter : word.toCharArray()) {
  // ...
}

Ein String ist kein iterierbares Objekt. Die Zeichen müssen erst in ein Array / eine Liste / o.ä. verfrachtet werden.

Die Methodennamen Append und ToString werden zu append und toString.

3