C# 在C中特殊字符第n次出现时添加新行字符#
假设我有一个字符串,其中包含许多管道分隔的数据C# 在C中特殊字符第n次出现时添加新行字符#,c#,c#-4.0,console-application,C#,C# 4.0,Console Application,假设我有一个字符串,其中包含许多管道分隔的数据 String s="hskdhkdh|eeeee|eeeee|eeeee|eeeesds|ddd\nsdsfdfdf|dsfdfdf|dfdsf\ndsfdsf|sdfsfdsfds|cvcxvv|hkdh\nhdskdh|hdkshdkd|n\nkho|jljoas|sbkhash|bkshoshak\nhksashalsha|bkgaskgask|hkhlv|skhgdskdg|bgdsjdgsj|gklgau" 如果使用此字符串,则新行字符
String s="hskdhkdh|eeeee|eeeee|eeeee|eeeesds|ddd\nsdsfdfdf|dsfdfdf|dfdsf\ndsfdsf|sdfsfdsfds|cvcxvv|hkdh\nhdskdh|hdkshdkd|n\nkho|jljoas|sbkhash|bkshoshak\nhksashalsha|bkgaskgask|hkhlv|skhgdskdg|bgdsjdgsj|gklgau"
如果使用此字符串,则新行字符(\n)太多,但我只希望\n出现在每第6次管道(|)之前
所以结果应该是
String s="hskdhkdh|eeeee|eeeee|eeeee|eeeesds|ddd\nsdsfdfdf|dsfdfdf|dfdsfdsfdsf|sdfsfdsfds|cvcxvv|hkdh\nhdskdh|hdkshdkd|nkho|jljoas|sbkhash|bkshoshak\nhksashalsha|bkgaskgask|hkhlv|skhgdskdg|bgdsjdgsj|gklgau"
我正在控制台应用程序中处理C#
有人能帮我一下吗分成小块
var bits = s.Split('|'); // Divide into bits
for(int i = 0; i < bits.Length; i++){
if(i % 6 == 0){
bits[i] += "\n";
}
}
var done = string.Join(bits, '|');
for(int i=0;i这应该是可行的(如果它编译了,我会在回复中直接编码)您最好使用
string.split()
方法将其更改为子字符串的数组,然后使用Stringbuilder
和计数器
变量来拆分字符串
我将使用您的字符串在下面为此编写代码
string s = "hskdhkdh | eeeee | eeeee | eeeee | eeeesds | ddd | sdsfdfdf | dsfdfd | dfdsfdsfdsf | sdfsfdsfds | cvcxvv | hkdh | hdskdh | hdkshdkd | nkho | jljoas | sbkhash | bkshoshak | hksashalsha | bkgaskgask | hkhlv | skhgdskdg | bgdsjdgsj";
string[] substrings = s.Split('|');
int counter = 1;
StringBuilder sb = new StringBuilder();
foreach (string sub in substrings)
{
sb.Append(sub + "|");
if (counter % 6 == 0)
{
sb.Append("\n");
}
counter++;
}
s = sb.ToString();
您可以尝试使用Linq:
这将在第七位之后添加第一个,不是吗?如果((i+1)%6==0),则应为。如果需要计数器,则不应使用foreach
。只需使用for
并使用该计数器即可。感谢您的反馈!我认为FACHACE更容易回答问题。我已经修改了这个问题。我需要在每第六次出现字符之前,我还需要删除其他的N个字符,这些字符也在文本中间。请帮助这是基本的东西,虽然…你根本没有接受过c#方面的培训吗?从字符串中剥离特定字符只是s.Replace()
String s =
"hskdhkdh|eeeee|eeeee|eeeee|eeeesds|ddd\nsdsfdfdf|dsfdfdf|dfdsf\ndsfdsf|sdfsfdsfds|cvcxvv|hkdh\nhdskdh|hdkshdkd|n\nkho|jljoas|sbkhash|bkshoshak\nhksashalsha|bkgaskgask|hkhlv|skhgdskdg|bgdsjdgsj|gklgau";
// Split by |
// Remove extra \n
// Join back by |
String result = String.Join("|", s
.Split('|')
.Select((item, index) => ((index > 0) && (index % 5 == 0))
? item
: item.Replace("\n", "")));
// Test:
// hskdhkdh|eeeee|eeeee|eeeee|eeeesds|ddd
// sdsfdfdf|dsfdfdf|dfdsfdsfdsf|sdfsfdsfds|cvcxvv|hkdh
// hdskdh|hdkshdkd|nkho|jljoas|sbkhash|bkshoshak
// hksashalsha|bkgaskgask|hkhlv|skhgdskdg|bgdsjdgsj|gklgau
Console.Write(result);