java的一个小程序,判断输入数字的位数,要用到异常处理

package判断数位;importjava.util.*;publicclassA{publicstaticvoidmain(Stringargs[])throwsEx... package 判断数位;
import java.util.*;

public class A {
public static void main(String args[])throws Exception{
Scanner stdin=new Scanner(System.in);
int result=0;
System.out.println("请输入任意一个0到9999的数字");
class AAException extends Exception
{
String a;
AAException()
{
a="输入数据出错";
}
public String toString()
{
return a;
}
}
class BB
{
public int getnum(int i) throws AAException
{
if(i<0||i>9999)
{
AAException exception=new AAException();
throw exception;
}
if(i>=0&&i<=9)
System.out.print("一位数");
else if(i>=10&&i<=99)
System.out.print("两位数");
else if(i>=100&&i<=999)
System.out.print("三位数");
else if(i>=1000&&i<=9999)
System.out.print("四位数");
}
}
BB a=new BB();
try{
String s=stdin.nextLine();
double ii=Double.parseDouble(s);
int i=(int)ii;
result=a.getnum(i);
}
catch(AAException e)
{System.out.println(e.toString());
}
}
}
求大神帮忙看下,整了半天也没搞定0.0
展开
 我来答
历盆郁7
2013-10-23 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:945万
展开全部

你的getnum方法 定义的时候需要返回int ,但你的方法体里面没有return,报错了

其实这个地方不用返回

            public void getnum(int i) throws AAException {
                if (i < 0 || i > 9999) {
                    throw new AAException();
                }
                if (i >= 0 && i <= 9)
                    System.out.print("一位数");
                else if (i >= 10 && i <= 99)
                    System.out.print("两位数");
                else if (i >= 100 && i <= 999)
                    System.out.print("三位数");
                else if (i >= 1000 && i <= 9999)
                    System.out.print("四位数");
            }

在调用的时候,这样写

        try {
            String s = stdin.nextLine();
            double ii = Double.parseDouble(s);
            int i = (int) ii;
            a.getnum(i);
        } catch (AAException e) {
            System.out.println(e.toString());
        }
追问
能给一个完整的程序么,最好运行过的,不懂啊!
追答

AAException.还是用你自己的,我给你重写下A

class A {
    public static void main(String args[]) {
        Scanner stdin = new Scanner(System.in);
        System.out.println("请输入任意一个0到9999的数字");

        try {
            String s = stdin.nextLine();
            double num = Double.parseDouble(s);
            getnum(num);
        } catch (AAException e) {
            System.out.println(e.toString());
        }
    }

    private static void getnum(double i) throws AAException {
        if (i < 0 || i > 9999) {
            throw new AAException();
        }
        if (i >= 0 && i <= 9) {
            System.out.print("一位数");
        } else if (i >= 10 && i <= 99) {
            System.out.print("两位数");
        } else if (i >= 100 && i <= 999) {
            System.out.print("三位数");
        } else {
            System.out.print("四位数");
        }
    }
}
百度网友4b68195
2013-10-23 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1717万
展开全部
import java.util.*;

public class A {
class AAException extends Exception
{
String a;
    AAException(){
  a="输入数据出错";
    }
  public String toString(){
   return a;
    }
}
class BB{
public int getnum(double i) throws AAException
{
if(i<0||i>9999)
{
AAException exception=new AAException();
throw exception;
}
if(i>=0&&i<=9)
System.out.print("一位数");
else if(i>=10&&i<=99)
System.out.print("两位数");
else if(i>=100&&i<=999)
    System.out.print("三位数");
else if(i>=1000&&i<=9999)
System.out.print("四位数");
}
}
public static void main(String args[]){
Scanner stdin=new Scanner(System.in);
BB a=new BB();
int result=0;
System.out.println("请输入任意一个0到9999的数字");
try{
String s=stdin.nextLine();
double ii=Double.parseDouble(s);
result=a.getnum(ii);   
  }catch(AAException e){
   System.out.println(e.toString());
    }
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c4aaf7
2013-10-23 · TA获得超过150个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:82.4万
展开全部
public static void main(String[] args) throws ParseException {
while (true) {
Scanner stdin = new Scanner(System.in);
int result = 0;
System.out.println("请输入任意一个0到9999的数字");

try {
String s = stdin.nextLine();
double ii = Double.parseDouble(s);
int i = (int) ii;
result = getnum(i);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

public static int getnum(int i) {
int num = 0;
if (i < 0 || i > 9999) {
throw new RuntimeException("请重新输入");
}
System.out.println(String.valueOf(i).length() + "位数字");
return i;
}
这样简单多了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式