使用字符串.Replace(char,char)不会修改我的字符串
本文关键字:字符串 char 修改 我的 Replace | 更新日期: 2023-09-27 18:00:38
我有一个值为0.003 m
的输入字符串input
。
我需要对它做一些事情;
- 剥去末端的标签
- 将所有点(
.
)替换为逗号(,
)
这就是我想到的:
try
{
if (input == "")
{
throw new Exception("Cannot have an empty String")
}
if(input.Contains('.'))
{
input.Replace('.', ',');
}
char[] CharactersToStrip = { ' ', 'm', 'k', 'g' };
string output = input.TrimEnd(CharactersToStrip);
return output;
}
catch (Exception Exception)
{
throw new Exception(Exception.Message);
}
您需要将替换项分配回输入:
if (input.Contains('.'))
{
input = input.Replace('.', ',');
}
此外,您的try-catch
是完全多余的。您所要做的只是销毁堆栈信息,因此请将其完全删除。
字符串是不可变的,您必须重新分配它:input = input.Replace('.', ',');
关于例外情况,有几点需要说明:
- 不要抛出一般的
Exception
,而是抛出一个更具描述性的子类 - 同上,但用"catch"代替"throw"
- 将变量命名为
Exception
会引起很多混乱,并违反命名约定
叹气,这是漫长的一天。我需要给被替换的字符串一个值,它本身不会修复。
即。input = input.replace('.', ',');
无论如何,谢谢。