首頁 > 後端開發 > C++ > 如何有效率地在字串中的大寫字母前插入空格?

如何有效率地在字串中的大寫字母前插入空格?

Linda Hamilton
發布: 2024-12-29 21:21:15
原創
781 人瀏覽過

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

在大小寫轉換中插入空格

目標是將「ThisStringHasNoSpacesButItDoesHaveCapitals」之類的字串轉換為「This String Has NoSpacesButItDoesHaveCapitals」之類的字串轉換為「This String Has NoSpace But It does”擁有大寫字母”,在大寫字母前面引入空格

正則表達式方法

正則表達式確實可以用於此目的。 A- Z]”識別大寫字母,“$0”在每個匹配之前添加一個空格:

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();
}
登入後複製
")

但是,正則表達式的計算成本很高,並且對於複雜模式來說可讀性較差。 >

迭代方法

另一種方法是迭代字串逐個字元:

此函數檢查小寫字元到大寫字元之間的轉換,並可選擇處理首字母縮寫。 92.4%包含1,000 個連續大寫字母的字串。 >

以上是如何有效率地在字串中的大寫字母前插入空格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板