Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅删除特定分区中的空间_C#_String - Fatal编程技术网

C# 仅删除特定分区中的空间

C# 仅删除特定分区中的空间,c#,string,C#,String,我有这样一个字符串: var result = string.Join("\"", test.Split('\"') .Select((s, i) => i%2 == 1 ? s : s.Replace(" ", string.Empty))); 这是我的文本更多文本文本,这里有一些特殊的[S p e c i a l字符串]更多随机文本 我想做的是删除括号外的空格,因此最终结果是: 这是YTEXTMORETEXTEXTE

我有这样一个字符串:

var result = string.Join("\"",
               test.Split('\"')
                   .Select((s, i) => i%2 == 1 ? s : s.Replace(" ", string.Empty)));
这是我的文本更多文本文本,这里有一些特殊的[S p e c i a l字符串]更多随机文本

我想做的是删除括号外的空格,因此最终结果是:

这是YTEXTMORETEXTEXTEXT,这里有一些特殊的[S p e c i a l字符串]更多随机文本

现在我正在删除空格,只是在做

myString.Replace(" ", String.Empty);

但是,有没有办法只选择所需的零件呢?

您可以这样做

stringbuilder sb = new stringbuilder();
bool should_remove = true;

foreach (var c in my_string) {
    if (c == your_start_special_char)
        should_remove = false;
    else if (c == your_end_special_char)
        should_remove = true;   
    else if (c != ' ')
       sb.append(c);
}
注意大写字母和语法。。。不在VS atm上


另一种选择是根据您的特殊区域进行拼接,并从常规区域中删除空间…

您可以执行以下操作

stringbuilder sb = new stringbuilder();
bool should_remove = true;

foreach (var c in my_string) {
    if (c == your_start_special_char)
        should_remove = false;
    else if (c == your_end_special_char)
        should_remove = true;   
    else if (c != ' ')
       sb.append(c);
}
注意大写字母和语法。。。不在VS atm上

另一种选择是根据您的特殊区域进行拼接,并从常规区域中删除空间…

您可以使用:

输出将保持:

thisismytextmoretexttexttextandherecomessomethingspecial[S p e c i a l string]morerandomtext
您可以使用:

输出将保持:

thisismytextmoretexttexttextandherecomessomethingspecial[S p e c i a l string]morerandomtext

像这样的怎么样:

var result = string.Join("\"",
               test.Split('\"')
                   .Select((s, i) => i%2 == 1 ? s : s.Replace(" ", string.Empty)));

它用双引号将字符串拆分,并为替换操作选择每个备用拆分项,然后再次将它们连接起来。

类似这样的内容如何:

var result = string.Join("\"",
               test.Split('\"')
                   .Select((s, i) => i%2 == 1 ? s : s.Replace(" ", string.Empty)));

它用双引号分割字符串,并为替换操作选择每个备用分割项,然后再将它们连接起来。

有个人想法吗?是的,但它意味着将整个字符串切成倍数(可能有几个“特殊字符串”)然后分别删除空格。我想知道是否有更好的方法,所以从一些有效的方法开始。然后,如果您发现它不符合性能、代码质量或其他要求,请返回这里并提供您的解决方案。您必须意识到,对于字面上的“无”来说,没有“更好的方法”.因为一切都比没有好。有个人想法吗?是的,但这意味着将整个字符串切成倍数(可能有几个“特殊字符串”)然后分别删除空格。我想知道是否有更好的方法,所以从一些有效的方法开始。然后,如果您发现它不符合性能、代码质量或其他要求,请返回这里并提供您的解决方案。您必须意识到,对于字面上的“无”来说,没有“更好的方法”。因为一切都比没有好。注意-如果带引号的块的两侧的分隔符不同,则此操作不起作用。因此,如果OP的编辑使用方括号而不是引号,则此代码不再起作用。注意-如果带引号的块的任一侧的分隔符不同,则此操作不起作用。因此,对于t如果编辑时使用方括号而不是引号,则此代码不再有效。