当前位置: 代码迷 >> Java相关 >> 输入的数据如若不是要求类型的怎样自动转换
  详细解决方案

输入的数据如若不是要求类型的怎样自动转换

热度:1030   发布时间:2013-02-25 21:52:01.0
输入的数据如果不是要求类型的怎样自动转换
是这个杨子的,我作一个题输入一个数x,那么输出1到x以及之间所有的整数,但是如果输入错误,给了个浮点数,怎样自动转换成整形的呢?
我的代码是...

import java.util.*;
public class printNumber {
public static void main(String[] args){
printNumbers();
}

public static void printNumbers(){
System.out.println("输入截至数据这里必须是整数");//如果这里给的输入错误不是整数那么程序则无法运行,得做一个什么呢??
Scanner console=new Scanner(System.in);
int n=console.nextInt();
for(int i=0;i<=n;i++)
{
System.out.print("["+i+"] ");
}
}

}


------解决方案--------------------------------------------------------
Java code
      Scanner console = new Scanner(System.in);      String val = console.next();      int n = 0;            try {         n = Integer.parseInt(val);      }      catch(Exception e) {         n = (int) Float.parseFloat(val);      }            for(int i = 0; i <= n; i++) {         System.out.print("[" + i + "] ");      }
------解决方案--------------------------------------------------------
探讨
Java code

Scanner console = new Scanner(System.in);
String val = console.next();
int n = 0;

try {
n = Integer.parseInt(val);
}
catch(Excep……

------解决方案--------------------------------------------------------
Java code
public static void main(String args[]) {                Scanner console = new Scanner(System.in);        String s = console.next();        int n = 0;        try{            if(s.matches("[0-9]*[.]{1}[0-9]*")){//小数                double d = Double.parseDouble(s);                n = (int) d;            }else if(s.matches("[0-9]*")){//整数                n = Integer.parseInt(s);            }        }catch(Exception e){                    }        for (int i = 0; i <= n; i++) {            System.out.print("[" + i + "] ");        }    }
------解决方案--------------------------------------------------------
import java.io.*;
public class printNumber {
public static void main(String[] args){
printNumbers();
}

public static void printNumbers(){
System.out.println("输入截至数据这里必须是整数");//如果这里给的输入错误不是整数那么程序则无法运行,得做一个什么呢??
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String str;
try {
str = br.readLine();
int n = (int)Float.parseFloat(str);
for(int i=0;i<=n;i++)
{
System.out.print("["+i+"] ");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
希望对你有用。。。
------解决方案--------------------------------------------------------
for example
Java code
public static void printNumbers(){    while (true) {        System.out.println("输入截至数据这里必须是整数/输入[quit]退出程序");         Scanner console=new Scanner(System.in);        String data = console.nextLine();        int n = 0;        try {            if ("quit".equals(data)) {                System.out.println("退出程序。");                break;            }            n = Integer.parseInt(data);        } catch (Exception e) {            System.out.println("输入非法数据,请重试。");            continue;        }        for(int i=0;i<=n;i++)        {            System.out.print("["+i+"] ");        }    }}
  相关解决方案