/*下列程序我希望当键入的不是数字的时候,能够打印出“您输入的不是数字”字样,该如何解决啊?*/
import java.io.*;
public class Circle{
static double radius;
static boolean check;
public Circle(double r){
if(r>=0){
check=true;
radius=r;
}
else
check=false;
}
double area(double radius){return Math.PI*radius*radius;}
double perimeter(double radius){return 2*Math.PI*radius;}
//主方法
public static void main(String[] args)
{
System.out.println("请输入圆的半径:" +radius);
BufferedReader br =new BufferedReader(new InputStreamReader(System.in),1); String str=null;
try{
str = br.readLine();
}
catch(IOException e){
System.out.println("您输入的不是数字.");
return;
} radius=Integer.parseInt(str);
Circle a=new Circle(radius);
if(check){
System.out.println("圆的面积:" +a.area(radius));
System.out.println("圆的周长:" +a.perimeter(radius));
}
else
System.out.println("请确保输入的数据不为负数.");
}
}
import java.io.*;
public class Circle{
static double radius;
static boolean check;
public Circle(double r){
if(r>=0){
check=true;
radius=r;
}
else
check=false;
}
double area(double radius){return Math.PI*radius*radius;}
double perimeter(double radius){return 2*Math.PI*radius;}
//主方法
public static void main(String[] args)
{
System.out.println("请输入圆的半径:" +radius);
BufferedReader br =new BufferedReader(new InputStreamReader(System.in),1); String str=null;
try{
str = br.readLine();
}
catch(IOException e){
System.out.println("您输入的不是数字.");
return;
} radius=Integer.parseInt(str);
Circle a=new Circle(radius);
if(check){
System.out.println("圆的面积:" +a.area(radius));
System.out.println("圆的周长:" +a.perimeter(radius));
}
else
System.out.println("请确保输入的数据不为负数.");
}
}
System.out.println("您输入的不是数字.");
return;
} 修改你的整体代码:
import java.io.*;
public class Circle{
static double radius;
static boolean check;
public Circle(double r){
if(r>=0){
check=true;
radius=r;
}
else
check=false;
}
double area(double radius){return Math.PI*radius*radius;}
double perimeter(double radius){return 2*Math.PI*radius;}
//主方法
public static void main(String[] args)
{
System.out.println("请输入圆的半径:" +radius);
BufferedReader br =new BufferedReader(new InputStreamReader(System.in),1); String str=null;
try{
str = br.readLine();
radius=Integer.parseInt(str);
}
catch(IOException e){
System.out.println("没有值");
return;
}
catch (NumberFormatException e1){
System.out.println("您输入的不是数字.");
return;
}
//radius=Integer.parseInt(str);
Circle a=new Circle(radius);
if(check){
System.out.println("圆的面积:" +a.area(radius));
System.out.println("圆的周长:" +a.perimeter(radius));
}
else
System.out.println("请确保输入的数据不为负数.");
}
}
System.out.println("您输入的是数字."); }
else{
System.out.println("您输入的不是数字."); }
public class Test
{
static public void main(String[] args) throws Exception
{ String s="12b";
boolean isDig=true;
for(int i=0;i<s.length();i++)
{ if(Character.isDigit(s.charAt(i))!=true)
isDig=false;
}
System.out.println(s+(isDig?"是数字":"不是数字"));
}
}另外用异常NumberFormatException也可以进行判断
public class Circle{
static double radius;
static boolean check;
public Circle(double r){
if(r>=0){
check=true;
radius=r;
}
else
check=false;
} //radius此时
//可能是0,因为if-else下来,radius不一定被赋值为:radius=r;
double area(double radius){return Math.PI*radius*radius;}
double perimeter(double radius){return 2*Math.PI*radius;}
//主方法
public static void main(String[] args)
{
System.out.println("请输入圆的半径:" +radius);
BufferedReader br =new BufferedReader(new InputStreamReader(System.in),1); String str=null;
try{
str = br.readLine();
}
catch(IOException e){
System.out.println("您输入的不是数字.");
return;
} radius=Integer.parseInt(str);
Circle a=new Circle(radius);
if(check){
System.out.println("圆的面积:" +a.area(radius));
System.out.println("圆的周长:" +a.perimeter(radius));
}
else
System.out.println("请确保输入的数据不为负数.");
}
}
String input;
boolean inputCheck;
double score = 0;
do
{
System.out.println("请输入一个数字: ");
input = sc.next();
inputCheck = validation(input);
while (inputCheck == false)
{
System.out.println("您输入的不是数字,请输入一个数字: ");
input = sc.next();
inputCheck = validation(input);
}
if (inputCheck == true)
score = Double.parseDouble(input);
if (score > 100 || score < 0)
System.out.println("Out of range.");
} while (score > 100 || score < 0);
其中调用判断输入字符串是否为数字的方法:public static boolean validation(String input)
{
char[] inputChar = input.toCharArray();
boolean isValid = true;
int decimalPtCount = 0;
for (int i = 0; i < input.length() && isValid; i++)
{
if (inputChar[i] == '.')
decimalPtCount++;
if ((Character.isDigit(inputChar[i]) == false && inputChar[i] != '.') || decimalPtCount > 1)
isValid = false;
}
return isValid;
}