Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用string.Replace(char,char)不会修改我的字符串_C# - Fatal编程技术网

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

C# 使用string.Replace(char,char)不会修改我的字符串,c#,C#,我有一个输入字符串input,值为0.003 m 我需要对它做一些事情 剥掉末端的标签 将所有点()替换为逗号(,) 这就是我想到的: try { if (input == "") { throw new Exception("Cannot have an empty String") } if(input.Contains('.')) { input.Replace('.', ','); } cha

我有一个输入字符串
input
,值为
0.003 m

我需要对它做一些事情

  • 剥掉末端的标签
  • 将所有点(
    )替换为逗号(
这就是我想到的:

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);
}

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

关于例外问题,有几点要说:

  • 不要抛出常规的
    异常
    ,而是抛出更具描述性的子类
  • 同上,但“抓”而不是“扔”
  • 命名变量
    异常
    将导致大量混乱,并违反命名约定

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

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

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

唉,这是漫长的一天。我需要给被替换的字符串一个值,它本身不固定

例如,
input=input.replace('.',',')


无论如何,谢谢。

所以,就像自言自语一样,有时你只需要找到一个令人困扰的问题:)不要命名你的异常变量
exception
。最好完全删除try-catch,因为它没有意义。感谢您的提示,这是在调试环境中找到异常的。谢谢您的回答。谢谢你的提示和关注。我把它们放在心上。我们都在学习,我为此感谢你。