【发布时间】:2020-11-08 13:37:05
【问题描述】:
我有这样的字符串 = "Code\"*\"Code2"。
字符串应该是 = "Code" "Code2"。
如何删除 code 和 code2 之间的字符并将其替换为空格?
【问题讨论】:
-
了解
string.Replace
标签: c# string replace character
我有这样的字符串 = "Code\"*\"Code2"。
字符串应该是 = "Code" "Code2"。
如何删除 code 和 code2 之间的字符并将其替换为空格?
【问题讨论】:
string.Replace
标签: c# string replace character
如果你知道确切的问题陈述,有很多方法可以解决这个问题。
string temp = "Code\"*\\Code2";
string newStr = temp.Replace("\"*\\", "");
也可以使用Remove方法,以起始索引和长度为参数。
我们也可以尝试使用给定单词的LastIndexOf 和IndexOf 方法从字符串中删除两个给定字符串之间的字符串。
更新根据 OP 的说明,预期的输出应该是
“代码”“代码2”
.Net Core 3.1 解决方案:
string temp = "Code\"*\\Code2";
string[] arr = temp.Split("\"*\\");
var abc = arr.Select(x => (char)34 + x + (char)34);
string newStr = string.Join(' ', abc);
.Net Framework 4.8 解决方案:
string temp = "Code\"*\\Code2";
string[] arr = temp.Split(new string[] { "\"*\\" }, StringSplitOptions.None);
var abc = arr.Select(x => (char)34 + x + (char)34);
string newStr = string.Join(" ", abc);
注意:双引号的 ASCII 值是34。
【讨论】:
由于\ 也用于转义引号,您的问题不太清楚。也可以是
string s = "Code\"*\"Code2";
string t = s.Replace("\"*\"", " ");
Console.WriteLine(t);
或
string s = "\"Code\"\\*\\\"Code2\"";
string t = s.Replace("\\*\\", " ");
Console.WriteLine(t);
这将输出"Code" "Code2"。
或
string t = s.Replace("*", " ");
Console.WriteLine(t);
这将输出Code" "Code2。
或
string s = "\"Code\"*\"Code2\"";
string t = s.Replace("*", " ");
Console.WriteLine(t);
这将输出"Code" "Code2"。
为了更清楚,请提供一个代码 sn-p,例如答案中的代码。
【讨论】:
string.Replace() 完全是要走的路。同样,从您的问题来看,除非您提供代码 sn-p,否则不能 100% 清楚您的字符串现在是什么样子以及它应该是什么样子。查看我的更新答案,现在应该更清楚了。