1

我需要将一个字符串转换为另一个字符串(始终为 4 个字符),如下所示:

1.2 > 0102
99.1 > 9901
1 > 0100
1.44 > 0144

然后其他一些函数将一个字符串(始终为 4 个字符)转换回另一个字符串,例如:

0102 > 1.2
9901 > 99.1
0100 > 1
0144 > 1.44

有人可以通过提供一些关于我如何在 C# 中执行此操作的建议来提供帮助吗?

更新:

只是为了让它更清楚一点。实际上有两个零填充的两位数。小数点前一个和小数点后一个。所以 90.09 需要转换为“90”​​+“09”=“9009”。我希望这是有道理的

4

3 回答 3

0

你可以从这里开始:

 public void separate(string yourString){
//s= yourString;
string s = "10.2";
string part1;
string part2;
    //
    // Split string on dot.
    // ... This will separate into 2 parts if exist .
    //
    string[] words = s.Split('.');

if(words[0].Length == 2){
    part1 = words[0];
        }else{
            if (words[0].Length == 1){
                part1 = "0" + words[0];
            }else{ part1 = "00";}
        }


if(words[1].Length == 2){
    part2 = words[1];
        }else{
            if (words[1].Length == 1){
            part1 = "0" + words[0];
            }else{ part1 = "00";}
       }
}



public string rebuild(string part1 , string part2)
 {
     string final = part1.Replace("0", "") +"."+ part2.Replace("0", "");

     return final;
 }

希望有帮助

于 2012-05-03T07:21:36.527 回答
0

我会使用 LINQ 在一行中解决它:

string oldString = "3.5";    
string newString = string.Join("", from s in oldString.Split('.') select s.PadLeft(2, '0')).PadRight(4, '0');

还原更容易:

string oldString = "0305";
string newString = oldString.Substring(0,2).TrimStart('0') + "." + oldString.Substring(2,2).TrimStart('0');
于 2012-05-03T07:39:46.367 回答
0
        string x = "99.1";
        int real, deci,indpoint;
        indpoint=x.IndexOf('.');
        real = Convert.ToInt32(x.Substring(0, indpoint));
        deci = Convert.ToInt32(x.Substring(indpoint+1));
        string result="";
        if (real < 10)
        {
            result += "0"; 
        }
        result += real;
        if (deci % 10 == 0)
        {
            deci = (int)(deci * 0.1);
        }
        if(deci < 10)
        {

            result += "0"; 
        }
        result += deci;

        float another = Convert.ToInt32(result.Substring(0, 2));
        if (result[2] == '0')
        {
            another += (float)(Convert.ToInt32(result.Substring(2, 2)) * 0.1);
        }
        else
        {
            another += (float)(Convert.ToInt32(result.Substring(2, 2)) * 0.01);
        }
        string result2 = Convert.ToString(another);
于 2012-05-03T08:03:54.430 回答