zoukankan      html  css  js  c++  java
  • 不用现有方法,把string转换成int型[C#]

    今天听朋友说到个面试题:不用现有方法,把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.     }  

  • 相关阅读:
    cas源码心得
    cas源码流程解析
    Windows 安装 Microsoft Visual Studio 2010
    Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境
    Windows系统 为 QT5软件 搭建 OpenCV2 开发环境
    ROS Learning-007 beginner_Tutorials ROS节点
    Python 黑客 --- 001 UNIX口令破解机
    ROS Learning-006 beginner_Tutorials 编译ROS程序包
    ROS Learning-005 beginner_Tutorials 创建ROS程序包(就是软件包)
    ROS Learning-004 beginner_Tutorials 介绍简单的ROS命令
  • 原文地址:https://www.cnblogs.com/soundcode/p/2258501.html
Copyright © 2011-2022 走看看