日期:2014-05-20  浏览次数:20881 次

输入的数据如果不是要求类型的怎样自动转换
是这个杨子的,我作一个题输入一个数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+"] ");
        }
    }
}