在大小寫轉換中插入空格
目標是將「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中文網其他相關文章!