如何将其转换为字符串?

时间:2016-01-22 18:30:21

标签: c#

string result = string.Empty;
foreach (char ch in txt)
{
    result += Convert.ToString((int)ch, 10);
}

我有这个代码,如何将其恢复为普通字符串?

1 个答案:

答案 0 :(得分:2)

除非您100%确定txt中的所有字符都在0-9,10-99,100-999等范围内,否则无法实现(即:字符串表示形式)每个字符的整数值都有一个固定的长度)

由于您没有将它们分开,因此结果不明确

更新

根据评论,您需要进行一些加密和解密。这是一种非常弱加密方法,我不建议您这样做,但添加分隔符可以帮助您执行此操作:

  public static string Encode(string txt)
  {
      string result = string.Empty;
      foreach (char ch in txt)
      {
          // "tku" will be our delimiter
          result += Convert.ToString((int)ch, 10) + "tku";;
      }
      result = result.Replace("0", "dos");
      result = result.Replace("1", "vso");
      result = result.Replace("2", "otw");
      result = result.Replace("3", "foa");
      result = result.Replace("4", "bae");
      result = result.Replace("5", "xgd");
      result = result.Replace("6", "ymt");
      result = result.Replace("7", "ksx");
      result = result.Replace("8", "wte");
      result = result.Replace("9", "rom");
      Console.WriteLine(result);
      return result;
    }

    public static string Decode(string txt)
    {
        string result = txt;
        result = result.Replace("dos", "0");
        result = result.Replace("vso", "1");
        result = result.Replace("otw", "2");
        result = result.Replace("foa", "3");
        result = result.Replace("bae", "4");
        result = result.Replace("xgd", "5");
        result = result.Replace("ymt", "6");
        result = result.Replace("ksx", "7");
        result = result.Replace("wte", "8");
        result = result.Replace("rom", "9");
        // "tku" will be converted to spaces
        result = result.Replace("tku", " ");
        string result2 = string.Empty;
        // and we split over them
        foreach(var res in result.Split(' '))
        {
          if(!String.IsNullOrWhiteSpace(res))
          {
            result2 += ((char)Int32.Parse(res)).ToString();
          }
        }           
        return result2;
    }

我做了一个小提琴herehttps://dotnetfiddle.net/zV9zYw

同样,我强烈建议您不要这样做,只需告诉您它是如何工作的。我没有对代码进行优化或尝试使代码更好。

此加密非常弱,并且在.NET框架中内置了很好的双向编码引擎。

PS:对于读者来说,代码来自OP的评论pasted here