none
如何将string转化为int,不调用C#的类库实现这个转化 RRS feed

  • 问题

  • 如果要将string转化为int,应该如何实现呢,不知道哪位高手可以实现这个转化,不能调用C#的类库,求帮助,多谢


    孙伟安静
    2011年5月10日 3:05

答案

  • 你好!

    使用 char 来做,示例如下:

    public static int ParseInt(string value)
    {
      int result = 0;
      int offset = 48; // ascii 48 = zero
    
      for (int index = 0; index < value.Length; index++)
      {
        char letter = value[index];
        result = 10 * result + (letter - offset);
      }
      return result;
    }
    


    知识改变命运,奋斗成就人生!
    2011年5月10日 4:50
    版主
  • 你的意思是不能使用int.Parse,或者是Convert.ToInt32之类的东东?

    不妨试试下面的——

    class Program
    {
        static long ConvertFromStringToLong(string s)
        {
            long num = 0;
            int index=0;

            for (int i = 0; i < s.Length; i++)
            {
                num = num * 10 + s[i] - '0';
            }

            return num;
        }
      
        static void Main(string[] args)
        {
            string s = "1230";
            long n = ConvertFromStringToLong(s);
            Console.WriteLine(n);
        }
    }


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已建议为答案 mazhou 2011年5月10日 10:26
    • 已标记为答案 mldarkMember 2011年5月10日 18:11
    2011年5月10日 5:01
    版主

全部回复

  • 你好!

    使用 char 来做,示例如下:

    public static int ParseInt(string value)
    {
      int result = 0;
      int offset = 48; // ascii 48 = zero
    
      for (int index = 0; index < value.Length; index++)
      {
        char letter = value[index];
        result = 10 * result + (letter - offset);
      }
      return result;
    }
    


    知识改变命运,奋斗成就人生!
    2011年5月10日 4:50
    版主
  • 你的意思是不能使用int.Parse,或者是Convert.ToInt32之类的东东?

    不妨试试下面的——

    class Program
    {
        static long ConvertFromStringToLong(string s)
        {
            long num = 0;
            int index=0;

            for (int i = 0; i < s.Length; i++)
            {
                num = num * 10 + s[i] - '0';
            }

            return num;
        }
      
        static void Main(string[] args)
        {
            string s = "1230";
            long n = ConvertFromStringToLong(s);
            Console.WriteLine(n);
        }
    }


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已建议为答案 mazhou 2011年5月10日 10:26
    • 已标记为答案 mldarkMember 2011年5月10日 18:11
    2011年5月10日 5:01
    版主
  • 嗯,就是想不用int.Parse,Convert.ToInt32的,多谢指点。
    孙伟安静
    2011年5月10日 8:53