问题描述
||
我正在用C#开发一个软件,最终结果是一个Excel电子表格。电子表格的标题是使用几个变量创建的,以准确解释电子表格的含义。变量之一是包含如下数据的字符串:
\'1.1.1 \'
我需要在创建电子表格时将其转换为:
\'1_1_1 \'
我尝试使用
String.Replace
方法,但它似乎忽略了它。有任何想法吗?
最好的祝福
解决方法
我打赌你这样做:
myString.Replace(\".\",\"_\");
当您应该这样做时:
myString = myString.Replace(\".\",\"_\");
请记住,.Net中的字符串是不可变的,因此任何更改都会产生新的字符串。
, 您可能会忽略string.Replace
的结果。你需要:
text = text.Replace(\'.\',\'_\');
仅调用Replace
不会更改现有字符串-它创建一个新字符串并返回它。字符串在.NET中是不可变的-创建后它们永远不会改变。
, 使用string.Replace
时是否还记得要分配它?
yourString.Replace(\".\",\"_\");
什么也不会做。
string newString = yourString.Replace(\".\",\"_\");
将返回带下划线的圆点的字符串。
, 如果我不得不猜测,您并没有捕获capturing0ѭ返回的值。字符串是不可变的,因此“ 0”返回一个新的字符串,您需要存储该字符串的引用。
string foo = \"1.1.1\";
foo = foo.Replace(\'.\',\'_\');
, String input = \"1.1.1\";
input = input.Replace(\".\",\"_\");
, 字符串是不可变的,因此请确保您正在像这样使用它:
string myString = \"1.1.1\";
myString = myString.Replace(\'.\',\'_\');
, String.Replace
是执行此操作的正确方法:
private void button1_Click(object sender,RoutedEventArgs e) {
String myNumbers = \"1.1.1\";
Console.WriteLine(\"after replace: \" + myNumbers);
myNumbers = myNumbers.Replace(\".\",\"_\");
Console.WriteLine(\"after replace: \" + myNumbers);
}
将产生:
after replace: 1.1.1
after replace: 1_1_1