我正在尝试用我自己的字符替换此字符串中的一些Romanian characters,但它并没有真正起作用。
static void Main(string[] args)
{
string sometext = "Încă nu s-a pornit acasă";
sometext.Replace("ă", "1");
Console.WriteLine(sometext);
Console.ReadKey(true);
}
这会输出原始 sometext
而不做任何更改。但是,既不替换也不替换最终结果都是Inca nu s-a pornit acasa
。变音符号被替换为与它们对应的ISO-8859-1
个字符。 Î
变为I
,ă
变为a
。
预期结果为:Înc1 nu s-a pornit acas1
。
实际上,我得到:Inca nu s-a pornit acasa
注意:在 Advanced Save Options
中,我选择了以下编码:Unicode (UTF-8 with signature) - Codepage 65001
sometext = sometext.Replace("ă", "1");
工作正常。谢谢大家!答案 0 :(得分:7)
Replace不会改变字符串,它返回一个包含替换的字符串,因此您的代码应为:
sometext = sometext.Replace(...);
答案 1 :(得分:4)
static void Main(string[] args)
{
string sometext = "Încă nu s-a pornit acasă";
sometext = sometext.Replace("ă", "1");
Console.WriteLine(sometext);
Console.ReadKey(true);
}
或
static void Main(string[] args)
{
string sometext = "Încă nu s-a pornit acasă".Replace("ă", "1");
Console.WriteLine(sometext);
Console.ReadKey(true);
}
或者其他什么,Replace返回字符串
答案 2 :(得分:3)
字符串是不可变的。 sometext = sometext.Replace(...)
也是如此。
答案 3 :(得分:3)
static void Main(string[] args)
{
string sometext = "Încă nu s-a pornit acasă";
sometext = sometext.Replace("ă", "1");
Console.WriteLine(sometext);
Console.ReadKey(true);
}
试试这个......