不用现有方法,把string转换成int型[C#]
2011-11-22 11:23
561 查看
今天听朋友说到个面试题:不用现有方法,把string转换成int型
就试着写了一下,没有考虑负数的情况,看的朋友可以自己试一下,也不难.
view plain
using System;
using System.Collections.Generic;
using System.Text;
namespace StringToInt
{
class Program
{
static void Main(string[] args)
{
string strInput=string.Empty;
//输入e,E,退出操作
while (!strInput.Equals("e") || !strInput.Equals("E"))
{
strInput = Console.ReadLine();
int n = TransToInt(strInput);
if (n == -1)
{
Console.WriteLine("输入的不是有效的数字字符或数字超出整形范围!");
}
else
{
Console.WriteLine("转换后的整数是{0}", n);
}
}
}
private static int TransToInt(string str)
{
char[] ch = str.ToCharArray();//转换成char型来计算
int[] nArray = new int[str.Length];//定义一个int型数组
int nReturn = 0; //定义返回的int型值
const int ten = 10; //定义常量
for (int i = 0; i < ch.Length; i++)
{
if (ch[i] - 48 < 0 || ch[i] - 48>9) //判断是否是可转换的int型
{
return -1;
}
else
{
nArray[i] = ch[i] - 48; //把字符转换成int
for (int j = ch.Length - i - 1; j > 0; j--)
{
nArray[i] *= ten;
}
nReturn += nArray[i];
}
}
if (!nReturn.ToString().Equals(str))//如果数字超出int型范围
{
return -1;
}
return nReturn;
}
}
}
就试着写了一下,没有考虑负数的情况,看的朋友可以自己试一下,也不难.
view plain
using System;
using System.Collections.Generic;
using System.Text;
namespace StringToInt
{
class Program
{
static void Main(string[] args)
{
string strInput=string.Empty;
//输入e,E,退出操作
while (!strInput.Equals("e") || !strInput.Equals("E"))
{
strInput = Console.ReadLine();
int n = TransToInt(strInput);
if (n == -1)
{
Console.WriteLine("输入的不是有效的数字字符或数字超出整形范围!");
}
else
{
Console.WriteLine("转换后的整数是{0}", n);
}
}
}
private static int TransToInt(string str)
{
char[] ch = str.ToCharArray();//转换成char型来计算
int[] nArray = new int[str.Length];//定义一个int型数组
int nReturn = 0; //定义返回的int型值
const int ten = 10; //定义常量
for (int i = 0; i < ch.Length; i++)
{
if (ch[i] - 48 < 0 || ch[i] - 48>9) //判断是否是可转换的int型
{
return -1;
}
else
{
nArray[i] = ch[i] - 48; //把字符转换成int
for (int j = ch.Length - i - 1; j > 0; j--)
{
nArray[i] *= ten;
}
nReturn += nArray[i];
}
}
if (!nReturn.ToString().Equals(str))//如果数字超出int型范围
{
return -1;
}
return nReturn;
}
}
}
相关文章推荐
- 不用现有方法,把string转换成int型[C#]
- 把string转换成int型,非现有方法(非int.Parse)
- C# Color与 String 的转换方法
- 不用String自带方法实现大小写字母转换
- C#中String转换为sbyte*的方法
- 在C#中string与double的转换方法
- JAVA中将带负数的String字符串转换为int型数组方法
- C#中String转换为sbyte*的方法
- String和datetime在SQL中和在C#中相互转换方法总结
- C#中的STRING和时间的转换方法
- C# 0、1 状态转换(int 类型转string 类型的方法)
- C# 中怎么将string转换成int型
- C# 实现 int[]到string[]的转换方法 Array.ConvertAll
- [c#]string和byte 数组转换的快速方法(采用unsafe)
- 在C#中STRING与DOUBLE的转换方法
- c#无法从“方法组”转换为“String”或无法从“int”转换为“string”
- winform C#中Byte与String的转换方法,相互转换
- C# 中怎么将string转换成int型
- C#中使用Buffer.BlockCopy()方法将string转换为byte array的方法:
- C#中string的几种转换方法的异同——《读你必须知道的.net》