我正在检查日语字符串的空格并用"_"替换它们.这就是我在做的事情:
string input1="abc dfg";
string input2="????";
if(input1.Contains(" "))
{
Console.WriteLine(input1.Replace(" ","_"));
}
Console.WriteLine("------------------");
if(input2.Contains(" "))
{
Console.WriteLine(input2.Replace(" ","_"));
}
Run Code Online (Sandbox Code Playgroud)
这是此代码的输出
abc__dfg
------------------
Run Code Online (Sandbox Code Playgroud)
它在简单的英文字符串中用"_"替换空格,但在日语字符串中则不是.
因为你的外观空间input2不是真正的空间,只需检查它的ascii代码
Console.WriteLine(Convert.ToInt32('?')); // output: 12288
Console.WriteLine(Convert.ToInt32(' ')); // output: 32
string input1 = "abc dfg";
string input2 = "????"; // a space
string input3 = "?? ?"; // not a space
if (input1.Contains(" "))
{
Console.WriteLine(input1.Replace(" ", "_"));
}
Console.WriteLine("------------------");
if (input2.Contains("?"))
{
Console.WriteLine(input2.Replace("?", "_"));
}
Console.WriteLine("------------------");
if (input3.Contains(" "))
{
Console.WriteLine(input3.Replace(" ", "_"));
}
Run Code Online (Sandbox Code Playgroud)
@Ronan Thibaudau的原始解释:
因为它不是空格,所以它不是同一个字符,从输入2字符串复制你所谓的"空格"并将其粘贴到input2.replace方法中它会起作用,它与你键入的空格不同(即使我尝试在stackoverflow上选择它,它的大小是input1中的空格的两倍,因此它不能是相同的字符)