簡體   English   中英

向字符串添加回車符

[英]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(','));

ReplaceWithEnvironmentNewLineReplaceWithConstant在彼此的誤差范圍內,因此在功能上沒有區別。

出於類似於使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM