Java文件操作(三)

3.6.1、练习一

完成以下功能

通过程序输入两个数字,之后进行两个数字的相加操作,并把结果打印输出。

要求:如果用户输入的不是数字,则应该提示用户输入错误,之后要求用户重新输入。

? 字符串 ? 整型:Integer.parseInt(String str)

A、 基础模型

import java.io.* ;

public class IODemo30{

public static void main(String args[]) throws Exception{

BufferedReader buf = null ;

buf = new BufferedReader(new InputStreamReader(System.in)) ;

int x = 0 ;

int y = 0 ;

System.out.print("输入第一个数字:") ;

String str = null ;

str = buf.readLine() ;

x = Integer.parseInt(str) ;

System.out.print("输入第二个数字:") ;

str = buf.readLine() ;

y = Integer.parseInt(str) ;

System.out.println("计算结果:" + x + " + " + y + " = " + (x+y)) ;

}

};

B、 为程序中加入判断

因为数据是由用户输入的,所以必须对输入的内容进行验证。使用正则表达式。

import java.io.* ;

public class IODemo31{

public static void main(String args[]) throws Exception{

BufferedReader buf = null ;

buf = new BufferedReader(new InputStreamReader(System.in)) ;

int x = 0 ;

int y = 0 ;

boolean flag = true ;

System.out.print("输入第一个数字:") ;

String str = null ;

while(flag){

   str = buf.readLine() ;

   if(str.matches("+")){

    x = Integer.parseInt(str) ;

    flag = false ;

   }else{

    System.out.print("输入的不是数字,请重新输入:") ;

   }

}

System.out.print("输入第二个数字:") ;

flag = true ;

while(flag){

   str = buf.readLine() ;

   if(str.matches("+")){

    y = Integer.parseInt(str) ;

    flag = false ;

   }else{

    System.out.print("输入的不是数字,请重新输入:") ;

   }

}

System.out.println("计算结果:" + x + " + " + y + " = " + (x+y)) ;

}

}

如果现在要求连续输入10个数字,则以上代码要重复10遍,下面设计一个输入数据的类,要求可以通过此类得到正确的整数、小数、日期(yyyy-mm-dd),和字符串,问此类如何设计,并将此类应用与之前的程序之上。

import java.io.* ;

import java.util.* ;

import java.text.* ;

class InputData{

private BufferedReader buf = null ;

public InputData(){

this.buf = new BufferedReader(new InputStreamReader(System.in)) ;

}

public String getString(String info){

String str = null ;

System.out.print(info) ;

try{

   str = this.buf.readLine() ;

}catch(Exception e){}

return str ;

}

public int getInt(String info){

int temp = 0 ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("+")){

     temp = Integer.parseInt(str) ;

     flag = false ;

    }else{

     System.out.print("输入的不是数字,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是数字,请重新输入,") ;

   }

}

return temp ;

}

public float getFloat(String info){

float temp = 0 ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("}")){

     temp = Float.parseFloat(str);

     flag = false ;

    }else{

     System.out.print("输入的不是数字,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是数字,请重新输入,") ;

   }

}

return temp ;

}

public Date getDate(String info){

Date temp = null ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("}")){

     // 把一个字符传变为Date类型

     temp = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;

     flag = false ;

    }else{

     System.out.print("输入的不是日期,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是日期,请重新输入,") ;

   }

}

return temp ;

}

}

public class IODemo32{

public static void main(String args[]) throws Exception{

InputData input = new InputData() ;

int x = input.getInt("输入第一个数字:") ;

int y = input.getInt("输入第二个数字:") ;

System.out.println("计算结果:" + x + " + " + y + " = " + (x+y)) ;

System.out.println(input.getFloat("输入小数:")) ;

System.out.println(input.getDate("输入日期:")) ;

}

}

3.6.2、练习二

设计一个菜单程序

用户运行程序之后,可以显示一个菜单:

[1]、输入数据

[2]、查看数据

[3]、修改数据

[4]、退出系统

请选择:

提示:可以通过switch完成

import java.io.* ;

import java.util.* ;

import java.text.* ;

class InputData{

private BufferedReader buf = null ;

public InputData(){

this.buf = new BufferedReader(new InputStreamReader(System.in)) ;

}

public String getString(String info){

String str = null ;

System.out.print(info) ;

try{

   str = this.buf.readLine() ;

}catch(Exception e){}

return str ;

}

public int getInt(String info){

int temp = 0 ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("+")){

     temp = Integer.parseInt(str) ;

     flag = false ;

    }else{

     System.out.print("输入的不是数字,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是数字,请重新输入,") ;

   }

}

return temp ;

}

public float getFloat(String info){

float temp = 0 ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("}")){

     temp = Float.parseFloat(str);

     flag = false ;

    }else{

     System.out.print("输入的不是数字,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是数字,请重新输入,") ;

   }

}

return temp ;

}

public Date getDate(String info){

Date temp = null ;

boolean flag = true ;

String str = null ;

while(flag){

   try{

    str = this.getString(info) ;

    if(str.matches("}")){

     // 把一个字符传变为Date类型

     temp = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;

     flag = false ;

    }else{

     System.out.print("输入的不是日期,请重新输入,") ;

    }

   }catch(Exception e){

    System.out.print("输入的不是日期,请重新输入,") ;

   }

}

return temp ;

}

}

class Operate{

public void add(){

System.out.println("选择的是输入操作!") ;

}

public void show(){

System.out.println("选择的是查看数据操作!") ;

}

public void update(){

System.out.println("选择的是修改操作!") ;

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值