黑马程序员技术交流社区

标题: 弱弱的请教一下【已解决】 [打印本页]

作者: 丁乐    时间: 2012-6-2 23:12
标题: 弱弱的请教一下【已解决】
本帖最后由 丁乐 于 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. }        
复制代码

作者: 袁錦泰    时间: 2012-6-2 23:56
我个人认为需要正则表达式,定义你输入的格式.
我对那个不太熟悉,所以只能给你一个思路.
看看其他同学有没有好方法.
作者: 刘伯阳    时间: 2012-6-3 00:03
本帖最后由 刘伯阳 于 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{}包装起来并抛出提示信息就行了~
作者: 杜俊彪    时间: 2012-6-3 00:15
本帖最后由 杜俊彪 于 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];
        }
}        






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2