使用字符串.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);
}

使用字符串.Replace(char,char)不会修改我的字符串

您需要将替换项分配回输入:

if (input.Contains('.'))
{
    input = input.Replace('.', ',');
}

此外,您的try-catch是完全多余的。您所要做的只是销毁堆栈信息,因此请将其完全删除。

字符串是不可变的,您必须重新分配它:input = input.Replace('.', ',');

关于例外情况,有几点需要说明:

  • 不要抛出一般的Exception,而是抛出一个更具描述性的子类
  • 同上,但用"catch"代替"throw"
  • 将变量命名为Exception会引起很多混乱,并违反命名约定

叹气,这是漫长的一天。我需要给被替换的字符串一个值,它本身不会修复。

即。input = input.replace('.', ',');

无论如何,谢谢。