A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁乐 初级黑马   /  2012-6-2 23:12  /  1423 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丁乐 于 2012-6-3 09:50 编辑

怎么让代码运行以后  输入数字键以外的键  同样返回  输入错误  ,
  1. import java.io.*;
  2. class Demo {
  3.         public static void main(String args[]) throws Exception{
  4.                 System.out.println("请输入一个1~7的数,将给你返回一周中的日期!");
  5.                         while(true){
  6.                         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  7.                         String lines =br.readLine();                        
  8.                         int x=Integer.parseInt(lines);
  9.                                 if(x>=1&&x<=7){
  10.                                 System.out.println(showWeek(x));
  11.                                 }else{
  12.                                         System.out.println("输入错误!");               
  13.                                 }
  14.                         }
  15.                 }
  16.                 static String showWeek(int x){
  17.                                 String[] arr={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
  18.                                 return arr[x-1];
  19.                 }
  20. }        
复制代码

3 个回复

倒序浏览
我个人认为需要正则表达式,定义你输入的格式.
我对那个不太熟悉,所以只能给你一个思路.
看看其他同学有没有好方法.
回复 使用道具 举报
本帖最后由 刘伯阳 于 2012-6-3 00:08 编辑

先上修改的代码:
import java.io.*;
import java.util.Scanner;
public class demo {
        public static void main(String args[]){
                System.out.println("请输入一个1~7的数,将给你返回一周中的日期!");
                        while(true){
                                Scanner in = new Scanner(System.in);
                                String x = in.nextLine();
                                try {
                                        if(Integer.parseInt(x)>=1&&Integer.parseInt(x)<=7){
                                        System.out.println(showWeek(x));
                                        }
                                        else{
                                                System.out.println("输入错误!");               
                                             }
                                } catch (Exception e) {
                                         System.out.println("输入错误!");
                                }
                        }
                }

                static String showWeek(String x){
                                String[] arr={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
                                return arr[Integer.parseInt(x)-1];
                }
}        
你在main方法中把异常throw出去了,就不进行异常处理,我们只要在出现问题的地方用try{}catch{}包装起来并抛出提示信息就行了~

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1 你这招儿还真不错... 直接利用对象的特有方.

查看全部评分

回复 使用道具 举报
本帖最后由 杜俊彪 于 2012-6-3 00:18 编辑

import java.io.*;
class Demo1 {
        public static void main(String args[]) throws Exception{
                System.out.println("请输入一个1~7的数,将给你返回一周中的日期!");
                        while(true){
                        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                        String lines =br.readLine();
                     if(lines.matches("^[1-7]*$")){

                        int x=Integer.parseInt(lines);
                                System.out.println(showWeek(x));

                     }else{
                             System.out.println("输入错误!");
                     }
                   }
                }
        public static String showWeek(int x){
                                String[] arr={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
                                return arr[x-1];
        }
}        

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1 非常好! 你正则应该学得不错吧?!.

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马