【问题标题】:how replace \"*\ with space in string in c#如何在c#中用字符串中的空格替换\"*\
【发布时间】:2020-11-08 13:37:05
【问题描述】:

我有这样的字符串 = "Code\"*\"Code2"。 字符串应该是 = "Code" "Code2"。 如何删除 code 和 code2 之间的字符并将其替换为空格?

【问题讨论】:

  • 了解string.Replace

标签: c# string replace character


【解决方案1】:

如果你知道确切的问题陈述,有很多方法可以解决这个问题。

string temp = "Code\"*\\Code2";
string newStr = temp.Replace("\"*\\", "");

也可以使用Remove方法,以起始索引和长度为参数。

我们也可以尝试使用给定单词的LastIndexOfIndexOf 方法从字符串中删除两个给定字符串之间的字符串。

更新根据 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

【讨论】:

  • 感谢您的回答。我更新了我的问题。请再读一遍。我的字符串是 "Code\"*\"Code2" 我想要的字符串是 = "Code" "Code2"
  • 你想打印什么结果。
  • @hosseinzakizadeh 然后请修改您的问题。令人困惑
  • 您使用的是 winforms 或 uwp 或 wpf 或控制台哪个框架或 .net 核心?
  • 我使用控制台
【解决方案2】:

由于\ 也用于转义引号,您的问题不太清楚。也可以是

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,例如答案中的代码。

【讨论】:

  • 它在 Code 和 Code2 之间移除 "。我需要这个:"Code" "Code2"
  • string.Replace() 完全是要走的路。同样,从您的问题来看,除非您提供代码 sn-p,否则不能 100% 清楚您的字符串现在是什么样子以及它应该是什么样子。查看我的更新答案,现在应该更清楚了。
猜你喜欢
  • 1970-01-01
  • 2011-09-16
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
相关资源
最近更新 更多