import java.io.*;class GalToLit2
{
 public static void main(String args[]) 
  {
  double gallons;
  double liters;
  
 try
  { System.out.println("Change Gallon to Liter");
   // 下面是对输入字符的处理
   BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
   System.out.print("Please input gallons: ");
   gallons = Double.parseDouble(in.readLine());
  }catch(Exception e)
 {
   System.out.println(e.getMessage());
  }
  liters = gallons * 3.7854;  System.out.println(gallons + " gallons is " + liters + " liters.");
 }
}
这段程序运行的时间要求输入的必须是数字字符(如1,2,3),如果输入字母等其他非数字字符(如a,b)就会报错退出。这个问题应该怎么解决?谢谢了。

解决方案 »

  1.   

    我想个思路用ASCII码判断呀,先强制转换成int型的数据在判断
      

  2.   

    public boolean check(String num){for(int i=0;i<num.length();i++){
     int h=mid(num,i,1);//忘记取字符串某一位置自符是不是这个了,哪位路过的把刚修改下哈
     if(h<91||h>97){
      return false;}
    }
    return true;
    }有错误 各位帮忙改下 希望能给楼主点提示
      

  3.   

    public class Chartest 
    {
    public static void main(String[] args)
    {
    Scanner scan = new Scanner(System.in);

    String str = scan.nextLine();

    for(int i = 0; i < str.length(); i ++)
    {
    int cast = (int)str.charAt(i);
    if(cast < 48 || cast > 57)
    {
    System.out.print("Error input");
    return;
    }
    }

    }
    }