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

在输入年份时,如果输入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. Spring MVC系列-(2) Bean的装配

    2. Bean的装配 Spring容器负责创建应用程序中的bean,并通过DI来协调对象之间的关系.Spring提供了三种主要的装配机制: XML显式配置: Java配置类进行显式配置: 隐式的bea ...

  2. (转).balignl 16,0xdeadbeef浅析

    原文地址:http://zqwt.012.blog.163.com/blog/static/12044684201031102956976/ 最近在分析u-boot的源代码,看到这一行: .balig ...

  3. BigDecimal介绍及BigDecimal实现四舍五入

    BigDecimal介绍及BigDecimal实现四舍五入 BigDecimal是什么? 我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的 ...

  4. 记一次nor flash固件烧录速度优化

    背景 某个方案使用的是spinor作为存储介质,每次烧录新固件都耗时数分钟,为了提高效率,需要对其进行优化. 分析流程 基本流程 当前烧录流程,有一个可选步骤,全盘擦除,这个步骤耗时达数分钟.不过这是 ...

  5. java-乘法口诀表。(新手)

    //创建的一个包名. package qige; //定义一个类. public class KJ { //公共静态的一个主方法. public static void main(String[] a ...

  6. 关于python如何安装和配置chromedriver以及一些相关问题

    解决问题三部曲:观察,思考,尝试 1.如何配置chromedriver: https://www.cnblogs.com/lintest/p/11697059.html 常见异常解决的一个参考吧:ht ...

  7. MyBatis框架——单表查询

    Mybatis单表查询,示例 1.创建数据库 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Versio ...

  8. jdbc连接数据库三种方式

    ---恢复内容开始--- 第一种: public class Demo1 { //连接数据库的URL private String url = "jdbc:mysql://localhost ...

  9. 【限时免费】AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)!

    目录 前言 全新AppBoxCore RazorPages 和 TagHelpers 技术架构 页面处理器和数据库操作的异步调用 Authorize特性和自定义权限验证过滤器 Authorize登录授 ...

  10. 干货|漫画算法:LRU从实现到应用层层剖析(第一讲)

    今天为大家分享很出名的LRU算法,第一讲共包括4节. LRU概述 LRU使用 LRU实现 Redis近LRU概述 第一部分:LRU概述 LRU是Least Recently Used的缩写,译为最近最 ...