应要求,本周制作了一个判断一个年份是否是闰年的程序。逻辑很简单,这里就不贴代码了。可是,在这次程序编写中发现了一个问题。

在输入年份时,如果输入1)字母2)空3)超过Int上限时,就会抛exception。

问题出在String转Int型时。

首先,在java中String转换为Int主要有两种方法

1.Integer.parseInt(s)

2.Integer.valueOf(s).intValue();

这两种方法略有不同,之后再跟大家分析。

首先我使用第一种方法,当测试数据为正常的年份时,是没有问题的,可当你测试非正常数据时就会抛出exception:

主要为NumberFormatException:

  1)当你输入为字母时,也就是内容不是数字时,如abcd

  2)当你输入为空时

  3)当你输入超出int上限时

然后我使用了第二种方法,得到的结果与第一种相同。

那怎么解决这种问题呢,使用户能正常输入内容

首先我想到的是使用try—catch

是程序能够捕捉到exception,并作相应处理

  以上代码就是当输入数据无法转换成int型时,弹出请输入正确年份的提示

TIPS:

1.Integer.parseInt(s)与Integer.valueOf(s).intValue()到底有什么不同呢,经过试验感觉并没有太大差异,但是Integer.valueOf(s)与Integer.parseInt(s)就有很大不同了,主要在于返回值不同

  Integer.parseInt(s)返回值为Int型

  Integer.valueOf(s)返回值为Integer,区别在于后者能够使用Integer的一些方法。

2.在做软件测试时不能仅仅用正常数据进行测试,因为对于软件从业人员而言,有很多观念根深蒂固,而一般使用者并没有这些观念,如果你不考虑这些使用者,那你的程序就会出现很多问题,就像这个闰年程序一样

3.try—catch在使用中真的用处很大,一个程序执行中有很多情况下会出exception,而这个方法能够帮助我们作相应处理。

Java中String转int型的方法以及错误处理的更多相关文章

  1. java中string和int互相转化

    1 怎样将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  2. java中string和int互相转化 (转)

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  3. java中String和int相互转换常用方法详解

    java中int和String的相互转换常用的几种方法: String  > int s="10";int i;第一种方法:i=Integer.parseInt(s);//默 ...

  4. Java中String和Int的相互转换

    一.将字串 String 转换成整数 intA. 有2个方法:1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([Strin ...

  5. java中String的21种使用方法

    (构造函数必须new出来) * public String (char[] vaue)                         将一个字符数组变成字符串(构造函数) * public Stri ...

  6. java中String和int的互相转化

    1. String 转 int 方式1:Integer.parseInt(); 方式2: Integer.valueOf(myStr).intValue(); 2.  int 转String 方式1: ...

  7. 106、Java中String类之使用contains()方法判断子字符串是否存在

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  8. 105、Java中String类之利用indexOf()方法判断子字符串是否存在

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  9. Java中String类的方法及说明

    String : 字符串类型 一.      String sc_sub = new String(c,3,2);    //      String sb_copy = new String(sb) ...

随机推荐

  1. Scikit-learn之特征抽取

    一.安装包 pip install Scikit-learn 二.字典特征抽取 1.字典特征抽取 #!/usr/bin/env python # -*- coding: utf-8 -*- #auth ...

  2. python基础学习day02

    pycharm的安装以及简单使用 辅助开发软件,代码逐行调试,设计高端 python的种类: ​ CPython:官方推荐可以转换成c能够识别的字节码. ​ JPython:可以转化为Java语言能够 ...

  3. 小白学 Python 数据分析(17):Matplotlib(二)基础操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  4. css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发外层hover,要用外层position 定义绝对定位,内层的hover跳出外层的div,这样视觉上就是两个单独的div,进行内外层联动。

    css hover 动画 transition:background-color 0.2s,color 0.2s; 外层套内层,正常是 里外层 鼠标上来 外层有hover,如果就想到里层hover触发 ...

  5. 第七周java实验作业

    实验七 继承附加实验实验时间 2018-10-11 1.实验目的与要求 (1)进一步理解4个成员访问权限修饰符的用途: Public  该类或非该类均可访问 Private  只有该类可以访问 Pro ...

  6. python使用matplotlib:subplot绘制多个子图 不规则画图

    https://www.cnblogs.com/xiaoboge/p/9683056.html

  7. .NET Core 3 WPF MVVM框架 Prism系列之区域管理器

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理 一.区域管理器 我们在之前的Prism系列构建了一个标准式Prism项目,这篇文章将会讲解之前项 ...

  8. OSLab:实模式与保护模式

    日期:2019/5/18 12:00 内容:操作系统实验作业:x86:IA-32:实模式与保护模式. PS:如果我们上的是同一门课,有借鉴代码的铁汁请留言告知嗷.只是作业笔记,不推荐学习. 一.实模式 ...

  9. python之道15

    请实现一个装饰器,限制该函数被调用的频率,如10秒一次(借助于time模块,time.time())(面试题,有点难度,可先做其他) 答案 # 思路 运行不能用 import time def wra ...

  10. 一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 反向传播算法(Backpropagation Algorithm, ...