import java.util.Scanner;

public class SwitchPractice
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int day;
System.out.println("请输入一个1~7的整数");
day = input.nextInt();

switch(day)
{
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入错误");         }

 }
}在DOS下如果我输入的是空格回车后会没有任何反映。如何判断它是个空格呢?这个day是个整型的。怎么办?先不计是不是1~7的。我就在想如何让他认识空格?谢谢了!!

解决方案 »

  1.   

    判断是否为数字 
    //用JAVA自带的函数 
    public static boolean isNumeric(String str){ 
      for (int i = str.length();--i>=0;){   
       if (!Character.isDigit(str.charAt(i))){ 
        return false; 
       } 
      } 
      return true; 
    } //用正则表达式   
    public static boolean isNumeric(String str){   
        Pattern pattern = Pattern.compile("[0-9]*");   
        return pattern.matcher(str).matches();      
    }   //用ascii码   
    public static boolean isNumeric(String str){   
       for(int i=str.length();--i>=0;){   
          int chr=str.charAt(i);   
          if(chr<48 || chr>57)   
             return false;   
       }   
       return true;   
      

  2.   

    input.nextInt();
    你这个已经限定了输入整数。所以空格肯定没有反应。
      

  3.   

    Scanner不读取空格 空格是分割符
      

  4.   

    Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值
      

  5.   

    可以先将读取的内容保存为字符串类型,然后进行判断,如果不为空格,则将它转化为整型
    String temp = input.nextLine();
    if(temp.equals(" ")){
        System.out.println("请重新输入!");
        temp = input.nextLine();
    }else
        day = Integer.parseInt(temp);
      

  6.   

    NO NO NO;
    要解决这个问题,首先你要知道Scanner这个类的用法。这个类当你输入的是空格或者回车的时候就表示你的输入已经结束了。你可以写一个测试的方法测试一下当你输入“a  a”的时候,打印的只有“a”;
    所以为了解决这个问题只有用BuifferReader br = new BfferReader(new InputStream(System.in));这样你输入的空格就可以显示了。
      

  7.   

    仍旧用Scanner辨识空格的话可以是可以的useDelimiter(delimiter);
    System.out.println(input.next());这里的delimiter不能是空格(三个空格相连无法分辨算是有几个delimiter), java.util.InputMismatchException