• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

不用现有方法,把string转换成int型[C#]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天听朋友说到个面试题:不用现有方法,把string转换成int型

就试着写了一下,没有考虑负数的情况,看的朋友可以自己试一下,也不难.

 

 

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. namespace StringToInt  
  5. {  
  6.     class Program  
  7.     {  
  8.         static void Main(string[] args)  
  9.         {  
  10.             string strInput=string.Empty;  
  11.             //输入e,E,退出操作  
  12.             while (!strInput.Equals("e") || !strInput.Equals("E"))  
  13.             {  
  14.                 strInput = Console.ReadLine();  
  15.                 int n = TransToInt(strInput);  
  16.                 if (n == -1)  
  17.                 {  
  18.                     Console.WriteLine("输入的不是有效的数字字符或数字超出整形范围!");  
  19.                 }  
  20.                 else  
  21.                 {  
  22.                     Console.WriteLine("转换后的整数是{0}", n);  
  23.                 }  
  24.             }   
  25.         }  
  26.         private static int TransToInt(string str)  
  27.         {  
  28.             char[] ch = str.ToCharArray();//转换成char型来计算  
  29.             int[] nArray = new int[str.Length];//定义一个int型数组  
  30.             int nReturn = 0;   //定义返回的int型值  
  31.             const int ten = 10;   //定义常量  
  32.             for (int i = 0; i < ch.Length; i++)  
  33.             {  
  34.                 if (ch[i] - 48 < 0 || ch[i] - 48>9)  //判断是否是可转换的int型  
  35.                 {  
  36.                     return -1;  
  37.                 }  
  38.                 else  
  39.                 {  
  40.                     nArray[i] = ch[i] - 48;  //把字符转换成int  
  41.                     for (int j = ch.Length - i - 1; j > 0; j--)  
  42.                     {  
  43.                         nArray[i] *= ten;  
  44.                     }  
  45.                     nReturn += nArray[i];  
  46.                 }  
  47.             }  
  48.             if (!nReturn.ToString().Equals(str))//如果数字超出int型范围  
  49.             {  
  50.                 return -1;  
  51.             }  
  52.             return nReturn;  
  53.         }  
  54.     }  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c# 添加图片水印,可以指定水印位置+生成缩略图发布时间:2022-07-14
下一篇:
(转载)UBB(c#完整版)发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap