0

我正在尝试替换字符串中的逗号。

例如,数据是零件的货币价值。

例如。453,27 这是我从 SAP 数据库中获得的值

我需要将逗号替换为句点以将值固定为正确的数量。现在有时,它会成千上万。

例如。2,356,34 这个值需要是 2,356.34

所以,我需要帮助来处理字符串以替换最后 2 个字符的逗号。

谢谢您的帮助

4

6 回答 6

1
string a = "2,356,34";
int pos = a.LastIndexOf(',');
string b = a.Substring(0, pos) + "." + a.Substring(pos+1);

您需要添加一些检查字符串中没有逗号的情况等,但这是核心代码。

您也可以使用正则表达式来完成,但这很简单且相当有效。

于 2012-06-15T12:49:35.410 回答
0

一个快速的谷歌搜索给了我这个:

void replaceCharWithChar(ref string text, int index, char charToUse)
{
    char[] tmpBuffer = text.ToCharArray();
    buffer[index] = charToUse;
    text = new string(tmpBuffer);
}

所以你的“charToUse”应该是'。'。如果它总是距离结尾 2 个字符,那么您的索引应该是 text.length - 3。

http://www.dreamincode.net/code/snippet1843.htm

于 2012-06-15T12:51:20.303 回答
0

用这个 :

string str = "2,356,34";
string[] newStr = str.Split(',');
str = string.Empty;
for (int i = 0; i <= newStr.Length-1; i++)
{
    if (i == newStr.Length-1)
    {
        str += "."+newStr[i].ToString();
    }
    else if (i == 0)
    {
        str += newStr[i].ToString();
    }
    else
    {
        str += "," + newStr[i].ToString();
    }
}
string s = str;
于 2012-06-15T12:57:39.823 回答
0

如果我理解正确,您总是需要用句点替换最后一个逗号。

public string FixSAPNumber(string number)
{
    var str = new StringBuilder(number);
    str[number.LastIndexOf(',')] = '.';
    return str.ToString();
}
于 2012-06-15T13:00:30.807 回答
0
string item_to_replace = "234,45";

var item = decimal.Parse(item_to_replace);

var new_item = item/100;

//if you need new_item as string 
//then new_item.ToString(Format)
于 2013-12-23T18:02:53.700 回答
-1
string x = "2,356,34";
if (x[x.Length - 3] == ',')
{
    x = x.Remove(x.Length - 3, 1);
    x = x.Insert(x.Length - 2, ".");
}
于 2012-06-15T12:55:53.817 回答