关闭

Java读入int数字利用system.in判别季节小测验

标签: javaSystem.in输入输出
884人阅读 评论(0) 收藏 举报
分类:

         看到前面客户端的代码,很明显会想到里面的关于输入输出的部分,对于Java基础没有学全的我很少难受,所以写一个例子可以复习一下输入输出,判断季节的例子:判断输入1~12的数字,然后判断这是从键盘输入一个数字,当输入的不是数字时报错要求重新输入。

       关于输入输出首先想到的是byte流和char流,这是输入输出流里基本的两个流,若是纯文本的读写就用char流,比如word读写或者聊天工具的开发;若是非纯文本比如图片音频视频的数据的传输就用byte流。

      System.in只能按字节读取。因此默认情况下,无法读取char数据,可以使用 InputStreamReader 来包装System.in对象,这样就可以读取到 char类型了,再转换成int类型,这样可能有些麻烦,但目前只学到这个阶段

public class SeasonShow {

	/**
	 * 输入一个数字然后判断属于哪个月份
	 * 难点在于数组的读取
	 * System.inSystem.in 是PrintStream的一个实例,参见PrintStream的方法。 
	 * 只能按字节读取。因此默认情况下,无法读取char数据。 
	 * 可以使用 InputStreamReader 来包装System.in对象,这样就可以读取到 char类型了。
	 */
	public static void main(String[] args) throws IOException {
		int num = 0;
		do{
		System.out.println("请输入月份");
		InputStream input = System.in;
		//读取数据
		BufferedReader bufr = new BufferedReader(new InputStreamReader(input)); 
		//封装成String在转换成int格式
		String data = bufr.readLine();
			 try {  
				 num = Integer.parseInt(data); 
			 }catch(NumberFormatException e) {  
			System.out.println("你输入的不是数字,请重新输入!"); 
			}
		}
		while(num>12||num<0);
								
		System.out.println("Month:"+num);
		if(num>-1&&num<4){
			System.out.println("该月份是:Spring");
		}
		else if(num>3&&num<7){
			System.out.println("该月份是:Summer");
		}
		else if(num>7&&num<9){
			System.out.println("该月份是:Autumn");
		}
		else{
			System.out.println("该月份是:Winter");
		}
				
		/*
		    InputStream input = System.in;  
		    你可以把它封装成  
			BufferedReader buf = new BufferedReader(   
			new InputStreamReader(input));   
			也可以把它封装成  
			DataInputStream in = new DataInputStream(input);  
			String line = (String)in.readUTF();  
			或者  
			byte[] buf= new byte[1024];  
			in.read(buf);  
		 */
	}
}

运行结果为:
   

哈哈,运行成功

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35036次
    • 积分:905
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条