A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 DarkSky 于 2014-7-20 16:06 编辑

我想每输入一个数字然后打印出输入的这个数字和运算符,请问怎么搞??例如我先算了8+8,打印出结果16和(8 + 8),我再加一个7,输出23和(8 + 8 + 7)以此类推。

评分

参与人数 1技术分 +1 收起 理由
Doraemon + 1

查看全部评分

6 个回复

倒序浏览
fantacyleo 来自手机 金牌黑马 2014-7-16 20:45:26
沙发
没看明白你的预期,你才输入一个数字,怎么能打印出运算符
回复 使用道具 举报
本帖最后由 icris 于 2014-7-16 22:37 编辑

  1.         private static void cal() throws IOException {
  2.                 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  3.                 String string = "";
  4.                 String buf = null;
  5.                 double d = 0 ;
  6.                
  7.                 for(;;){
  8.                         buf = reader.readLine();
  9.                         if (buf.length() <= 0) {
  10.                                 continue;
  11.                         }
  12.                         if (buf.equals("end")) {
  13.                                 break;
  14.                         }
  15.                         if (buf.startsWith("+")) {
  16.                                 d+=new Double(buf.substring(1));
  17.                                 string += buf;
  18.                         }else if (buf.startsWith("-")) {
  19.                                 d-=new Double(buf.substring(1));
  20.                                 string += buf;
  21.                         }else if (buf.startsWith("*")) {
  22.                                 d*=new Double(buf.substring(1));
  23.                                 string = "("+string+")"+buf;
  24.                         }else if (buf.startsWith("/")) {
  25.                                 d/=new Double(buf.substring(1));
  26.                                 string = "("+string+")"+buf;
  27.                         }else {
  28.                                 d = new Double(buf);
  29.                                 string = buf;
  30.                         }
  31.                         if ((d - Math.round(d)) == 0) {
  32.                                 System.out.print((int)d);
  33.                         }else {
  34.                                 System.out.print(d);
  35.                         }
  36.                         System.out.println( "\t(" + string + ")");
  37.                 }
  38.         }
复制代码


想了一下好像应该用 StringBuidler 不过就这样吧…
bug 非常多,不想改了…只要严格按照第一步输数字然后输运算符加数字就可以了。

评分

参与人数 1技术分 +2 收起 理由
Doraemon + 2

查看全部评分

回复 使用道具 举报
传智的吗 加个好友,俺也是!
回复 使用道具 举报
icris 发表于 2014-7-16 22:35
想了一下好像应该用 StringBuidler 不过就这样吧…
bug 非常多,不想改了…只要严格按照第一步输数字然后 ...

谢谢了,我今天早上又写了一遍成功了,但还是谢谢了,嘿嘿!!
回复 使用道具 举报
后边的功能是不是有点不必要额。。
回复 使用道具 举报
有点儿。。。。。。。。。厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马