简谈一下string 转 int 抛异常

string 字符串类型和 int 也是可以转换的。下一行的代码给出错误的转换方法。

string a = "123";  // 将a设置为字符串“123”
int x = (int) a;   // 转换

上述代码,毋庸置疑,肯定是错误的。VS 在编译时就过不了。那么,string 该怎么转换成 int 呢?

这里,我们需要用到 int.Parse(),核心代码为:

string a = "123";     // 将a设置为字符串“123”
int x = int.Parse(a); // 转换

如果仅仅是这样,是没有问题的,但是,我们下面再来做一个实例。

用户输入一个数字,而电脑将计算出这个数字加上1以后的答案,并且显示出来。

用户输入的东西,即 Console.ReadLine() ,一定是以字符串形式表现的。

于是,运用之前的方法,我们可以写出以下的代码:

class 测试
{
    static void Main(string[] args)
    {
        Console.WriteLine("输入数字,将计算出它加一的答案");
        int a = int.Parse(Console.ReadLine());  //转换用户输入的数字
        Console.WriteLine("答案是{0}",++a);     //++a 即 a+1 后的那个数,将它输出出来
        Console.ReadKey();
    }
}

当程序运行时,会出现:

输入数字,将计算出它加一的答案
3
答案是4

这样就很完美了吗?不!!

如果用户输入并非数字的其他字符,如汉字,会发生什么情况?

此时,用户输入 ,显然,程序将无法继续运行下去,因为int类型只能存整数,不能存字符。

这时,程序就会抛出异常。

如果用 VS 编,你还会看到异常类型:FormatException。

所以,为了保险,可以用try、catch来解决此问题。核心代码为:

try
{
               
}
catch (Exception)
{
                
}

try 在英语中就是尝试的意思。在这段代码中,try{} 部分,顾名思义,也就是去尝试进行下面的代码。catch{} 部分,则是检测异常。这样,在出现异常时,catch 就能捕获到异常,从而程序并不会停止。

则这段程序,完整的代码应该为:

using System;
class 测试
{
    static void Main(string[] args)
    {
        try
        {
           Console.WriteLine("输入数字,将计算出它加一的答案");
           int a = int.Parse(Console.ReadLine());   //有可能会抛出异常
           Console.WriteLine("答案是{0}",++a);   //如果没有异常,程序才会进入这一步
        }
        catch (Exception)
        {
            Console.WriteLine("无法转换");  //如果捕获到异常,就说“无法转换”
        }
         Console.ReadKey();
    }
}

这样,如果我输入了 ,程序结果为:

无法转换
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值