在编程中,有时需要将String型的变量编程Int型。例如,软件测试课程上的例子,输入年份,输出输入的年份是否闰年,我们可以考虑到有一些用户会输入如abc这样的不合法输入,虽然在实际中可以做出这种事的人很少,但是为了程序的功能的完整,我们程序员必须去考虑这些问题。这时候,就需要用到String转Int的方法了。
在Java中,String转Int可以使用 Integer.parseInt( str ) 的方法。其中:
str所表示的数字时,需要注意其不能超过Int的表示范围,否者会抛出OverflowException异常;
如果str不是数字,则程序会抛出FormatException异常;
如果str为空时,会抛出ArgumentNullException异常。
这样,就可以处理在实际问题中输入的是字符串的问题了。如果有人输入了字符串,可以用一下代码对输入的字符串进行过滤处理进行过滤处理:
1 try{ 2 int year = Integer.parseint(str); 3 4 } 5 catch(Exception e){ 6 System.out.println("输入不合法"); 7 8 }
这样就可以实现对不合法数据的过滤处理。
接下来,我们用一个小的Java程序来检测一下
在控制台分别输入数字、字符串、空的输出结果如下
程序的代码如下
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class input { public static void main(String[] args) throws IOException{ System.out.println("Enter a number:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; str = br.readLine(); int year = 0; try{ year = Integer.parseInt(str); } catch(Exception e){ System.out.println("输入不合法"); return; } System.out.println("number is :"+year);} }