[英]Add carriage return to a string
我有一根長繩子。
string s1 = "'99024','99050','99070','99143','99173','99191','99201','99202','99203','99204','99211','99212','99213','99214','99215','99217','99218','99219','99221','99222','99231','99232','99238','99239','99356','99357','99371','99374','99381','99382','99383','99384','99385','99386','99391','99392'";
我想
string s2 =
"'99024',
'99050',
'99070',
'99143',
'99173',
'99191',
'99201',
'99202',....";
換一種說法。 也許喜歡:
string s2 = "'99024',"+'\n'+"'99050',"+'\n'+"'99070',"+'\n'+"'99143',"+'\n'+.....;
我需要一個簡潔的代碼。 也許是 LINQ。謝謝。
string s2 = s1.Replace(",", "," + Environment.NewLine);
此外,僅從性能角度來看,以下是我看到的三個當前解決方案如何疊加超過 100k 次迭代:
ReplaceWithConstant - Ms: 328, Ticks: 810908
ReplaceWithEnvironmentNewLine - Ms: 310, Ticks: 766955
SplitJoin - Ms: 483, Ticks: 1192545
替換常量:
string s2 = s1.Replace(",", ",\n");
替換環境新線:
string s2 = s1.Replace(",", "," + Environment.NewLine);
拆分連接:
string s2 = String.Join("," + Environment.NewLine, s1.Split(','));
ReplaceWithEnvironmentNewLine和ReplaceWithConstant在彼此的誤差范圍內,因此在功能上沒有區別。
出於類似於使用String.Empty
而不是""
的可讀性和一致性,應優先使用Environment.NewLine
而不是"\n"
" 。
string s2 = s1.Replace(",", ",\n");
string s2 = s1.Replace(",", ",\n") + ",....";
另外一個選擇:
string s2 = String.Join("," + Environment.NewLine, s1.Split(','));
Environment.NewLine 應該像 Dan Rigby 所說的那樣使用,但 String.Empty 有一個問題。 無論是在讀取之前還是之后讀取,它都將始終保持為空。 我昨天在我的項目中遇到了問題。 我刪除了它,它按預期的方式工作。 最好聲明變量,然后在需要時調用它。 String.Empty 將始終保持為空,除非變量需要初始化,此時才應該使用 String.Empty。 以為我會把這個花絮扔給每個人,因為我經歷過它。
我建議使用StringBuilder
string s1 = "'99024','99050','99070','99143','99173','99191','99201','99202','99203','99204','99211','99212','99213','99214','99215','99217','99218','99219','99221','99222','99231','99232','99238','99239','99356','99357','99371','99374','99381','99382','99383','99384','99385','99386','99391','99392'";
var stringBuilder = new StringBuilder();
foreach (var s in s1.Split(','))
{
stringBuilder.Append(s).Append(",").AppendLine();
}
Console.WriteLine(stringBuilder);
字符串 s2 = s1.Replace(",", ",\r\n");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.