Heim > Backend-Entwicklung > C++ > Wie fügt man Leerzeichen vor Großbuchstaben in einer Zeichenfolge effizient ein?

Wie fügt man Leerzeichen vor Großbuchstaben in einer Zeichenfolge effizient ein?

Linda Hamilton
Freigeben: 2024-12-29 21:21:15
Original
785 Leute haben es durchsucht

How to Efficiently Insert Spaces Before Uppercase Letters in a String?

Leerzeichen in Groß-/Kleinschreibung einfügen

Das Ziel besteht darin, eine Zeichenfolge wie „ThisStringHasNoSpacesButItDoesHaveCapitals“ in „Diese Zeichenfolge hat keine Leerzeichen, aber sie tut es“ umzuwandeln „Haben Sie Großbuchstaben“, indem Sie Leerzeichen vor Großbuchstaben einfügen Zeichen.

Regex-Ansatz

Reguläre Ausdrücke können für diesen Zweck tatsächlich verwendet werden. Der reguläre Ausdruck „[A-Z]“ identifiziert Großbuchstaben und „$0“ fügt vor jeder Übereinstimmung ein Leerzeichen hinzu:

System.Text.RegularExpressions.Regex.Replace(value, "[A-Z]", " <pre class="brush:php;toolbar:false">string AddSpacesToSentence(string text, bool preserveAcronyms)
{
  if (string.IsNullOrWhiteSpace(text))
     return string.Empty;
  StringBuilder newText = new StringBuilder(text.Length * 2);
  newText.Append(text[0]);
  for (int i = 1; i < text.Length; i++)
  {
    if (char.IsUpper(text[i]))
      if ((text[i - 1] != ' ' && !char.IsUpper(text[i - 1])) ||
          (preserveAcronyms && char.IsUpper(text[i - 1]) &&
           i < text.Length - 1 && !char.IsUpper(text[i + 1])))
        newText.Append(' ');
    newText.Append(text[i]);
  }
  return newText.ToString();
}
Nach dem Login kopieren
")

Regexes können jedoch rechenintensiv und bei komplexen Mustern weniger lesbar sein.

Iterativer Ansatz

Ein alternativer Ansatz besteht darin, die Zeichenkette by zu durchlaufen Zeichen:

Diese Funktion prüft den Übergang zwischen Klein- und Großbuchstaben und verarbeitet optional Akronyme.

Leistungsvergleich

Leistungsmäßig , übertrifft der iterative Ansatz den Regex-Ansatz deutlich und zeigt eine Reduzierung der Ausführungszeit um 92,4 % für einen String mit 1.000 aufeinanderfolgenden Großbuchstaben Buchstaben. Dabei geht es um Code-Einfachheit und Geschwindigkeit.

Letztendlich hängt die Wahl zwischen diesen Ansätzen von den spezifischen Leistungs- und Lesbarkeitsanforderungen jedes Projekts ab.

Das obige ist der detaillierte Inhalt vonWie fügt man Leerzeichen vor Großbuchstaben in einer Zeichenfolge effizient ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage