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

         看到前面客户端的代码,很明显会想到里面的关于输入输出的部分,对于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);  
		 */
	}
}

运行结果为:
   

哈哈,运行成功

阅读更多
个人分类: java
上一篇学习Java Web开发[1]可上传图片的客户端开发
下一篇考试前的零散学习【1】网络地址a.b.c.d/x;数据报分片
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭