java吧 关注:1,246,843贴子:12,724,084
  • 3回复贴,共1

求教这个题怎么做啊!

只看楼主收藏回复

项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作


IP属地:云南1楼2017-05-06 18:34回复
    这个很简单


    IP属地:广东来自Android客户端2楼2017-06-14 14:33
    收起回复
      import java.io.BufferedReader;
      import java.io.BufferedWriter;
      import java.io.FileReader;
      import java.io.FileWriter;
      import java.io.IOException;
      public class Math {
      //参数为需要拆分的字符串 ,以什么符号拆分
      //
      public static int[] sp(String s,String math){
      String[] srr=new String[2];
      srr=s.split("math");
      int[] irr=new int[2];
      //String转换成int 方便运算结果
      irr[0]=Integer.parseInt(srr[0]);
      irr[1]=Integer.parseInt(srr[1]);
      return irr;
      }
      public static void main(String[] args) throws IOException {
      BufferedReader br=new BufferedReader(new FileReader("question.txt"));
      BufferedWriter bw=new BufferedWriter(new FileWriter("results.txt"));
      String s;
      //读取一行,之后判断+-*/是否在字符串中出现,
      //调用封装的方法 转换成int[],再进行相应的运算
      while((s=br.readLine())!=null){
      if(s.indexOf("+")!=0){
      int[] irr=sp(s,"+");
      bw.write(irr[0]+"+"+irr[1]+"="+(irr[0]+irr[1]));
      }else if(s.indexOf("-")!=0){
      int[] irr=sp(s,"-");
      bw.write(irr[0]+"-"+irr[1]+"="+(irr[0]-irr[1]));
      }else if(s.indexOf("*")!=0){
      int[] irr=sp(s,"*");
      bw.write(irr[0]+"*"+irr[1]+"="+(irr[0]*irr[1]));
      }else{
      int[] irr=sp(s,"/");
      bw.write(irr[0]+"/"+irr[1]+"="+(irr[0]/irr[1]));
      }
      }
      br.close();
      bw.flush();
      bw.close();
      }
      }


      IP属地:上海3楼2019-02-26 20:30
      回复