簡體   English   中英

如何在字符串數組的每個元素中添加新行?

[英]How to Append a new line in each element of a string array?

我正面臨字符串數組的問題。 請在這里幫助我。 我有一個像下面這樣的字符串:

string[] str1;
str1 = new string[5]{ “Element 1”, “Element 2”, “Element 3”, “Element 4”, “Element 5” };

在這里,我想檢查字符串數組中的每個元素是否有新行。 如果它沒有新行,請附加到它,我需要附加如下的新行字符:

str1 = new string[5]{ “Element 1\n”, “Element 2\n”, “Element 3\n”, “Element 4\n”, “Element 5\n” };

如何實現這一目標?

使用LINQ

str1 = str1.Select(e => e.EndsWith("\n") ? e : e + "\n")
           .ToArray();

如果我理解這個問題

給定的

var str1 = new string[5] { "Element 1", "Element 2", "Element 3", "Element 4", "Element 5" };

它可以很簡單

str1 = str1.Select(x => x.TrimEnd("\n") + "\n").ToArray();

這確保每個元素都附加了一個“\\n”


或者

str1 = str1.Select(x => x.EndsWith("\n") ? x : x + "\n").ToArray();

或者

str1 = str1.Select(x => x.EndsWith(Environment.NewLine) ? x : x + Environment.NewLine).ToArray();

更獨立於平台


作為猜測,當您使用string.Join將其寫入文本框/文件/控制台時,您很可能只需要添加string.Join ,並且可以使您的數組保持清潔

Console.WriteLine(string.Join(Environment.NewLine, str));

使用for循環,您可以執行以下操作:

for (int i = 0; i < str1.Length; i++)
{
    if (!str1[i].EndsWith("\n"))
    {
        str1[i] += "\n";
    }
}

話雖如此,您應該考慮更改變量的名稱。 str1不是數組的好名字(甚至在大多數情況下對於字符串)。

 string[] str1 = { "Element 1","Element 2", "Element 3", "Element 4", "Element 5" };
        string[] newstr1;
        var b="";
        for(int i=0;i<str1.Length;i++)
        {
            var chck1 = str1[i];
            if (!chck1.Contains("\n"))
            {

                b += chck1 +"\n ,";
            }
         }
        b = b.TrimEnd(',');
        var nwstrg = b.Split(',');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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