zoukankan      html  css  js  c++  java
  • JAVA学习日报 10/14

    今天时10月14号,星期三

    特别尝试了一下四则运算中分数和小数的计算……先说结论——果然不行啊,字符串读入读小数会报一个叫NullPointerException的奇妙异常

    解决了好一阵也没能彻底解决……啊,放弃!

    欸……话说下次的四则运算会不会就是小数了啊……

    另外虽然是失败作品……不过也把代码贴上来吧

    public static String getzongde(String str){
                String kuohao=getkuohao(str);
                String chengchu=getchengchu(kuohao);
                String jiajian=getjiajian(chengchu);
                return jiajian;
            }
            public static String getkuohao(String str){
                String newstr=str;
                if(newstr.contains("(")){
                    int a=str.lastIndexOf("(");
                    String str1=str.substring(a,str.length());
                    int b =str1.indexOf(")");
                    String str2=str1.substring(1,b);
                    String chengchu=getchengchu(str2);
                    String jiajian=getjiajian(chengchu);
                    StringBuffer s=new StringBuffer(str);
                    newstr=s.replace(a, a+b+1, jiajian).toString();
                    return getkuohao(newstr);
                    
                }
                return newstr;
            }
            public static String getchengchu(String str){
                String newstr=str;
                if(str.contains("*")||str.contains("/")){
                    String str2[]=str.split("[*/+-]");//
                    String str3=str.replaceAll("\\d+","").replaceAll("\\.","");
                    int a=0,b=0,c=0,star=0;
                    if(str3.contains("*")&&str3.contains("/")){
                        a=str3.indexOf("*");
                        b=str3.indexOf("/");
                        if(a>b){
                            c=b;    
                            star=str.indexOf("/");
                        }else{
                            c=a;
                            star=str.indexOf("*");
                        }
                    }else if(str3.contains("*")){
                        c=str3.indexOf("*");
                        star=str.indexOf("*");
                    }else{
                        c=str3.indexOf("/");
                        star=str.indexOf("/");
                    }
                    String num=getsuanshi(str2[c]+str3.charAt(c)+str2[c+1]);
                    StringBuffer s=new StringBuffer(str);
                    int kaishi=star-str2[c].length(),jieshu=star+str2[c+1].length()+1;
                    StringBuffer strs=s.replace(kaishi,jieshu ,num);
                    newstr=strs.toString();
                    return getchengchu(newstr);
                }
                return newstr;
            }
            public static String getjiajian(String str){
                String newstr=str;
                if(str.contains("+")||str.contains("-")){
                    String str2[]=str.split("[*/+-]");
                    String str3=str.replaceAll("\\d+","").replaceAll("\\.","");
                    int a=0,b=0,c=0,star=0;
                    if(str3.contains("+")&&str3.contains("-")){
                        a=str3.indexOf("+");
                        b=str3.indexOf("-");
                        if(a>b){
                            c=b;    
                            star=str.indexOf("-");
                        }else{
                            c=a;
                            star=str.indexOf("+");
                        }
                    }else if(str3.contains("+")){
                        c=str3.indexOf("+");
                        star=str.indexOf("+");
                    }else{
                        c=str3.indexOf("-");
                        star=str.indexOf("-");
                    }
                    String num=getsuanshi(str2[c]+str3.charAt(c)+str2[c+1]);
                    StringBuffer s=new StringBuffer(str);
                    int kaishi=star-str2[c].length(),jieshu=star+str2[c+1].length()+1;
                    StringBuffer strs=s.replace(kaishi,jieshu ,num);
                    newstr=strs.toString();
                    return getjiajian(newstr);
                }
                return newstr;
            }
            public static String getsuanshi(String str){
                double c=0.0;
                String str2[];
                if(str.contains("+")){
                    str2=str.split("[+]");
                    c=getjia(Double.parseDouble(str2[0]),Double.parseDouble(str2[1]));
                }else if(str.contains("-")){
                    str2=str.split("[-]");
                    c=getjian(Double.parseDouble(str2[0]),Double.parseDouble(str2[1]));
                }else if(str.contains("*")){
                    str2=str.split("[*]");
                    c=getcheng(Double.parseDouble(str2[0]),Double.parseDouble(str2[1]));
                }else if(str.contains("/")){
                    str2=str.split("[/]");
                    c=getchu(Double.parseDouble(str2[0]),Double.parseDouble(str2[1]));
                }
                NumberFormat format=NumberFormat.getInstance();
                format.setMaximumFractionDigits(30);
                format.setMinimumFractionDigits(0);
                format.setGroupingUsed(false);
                return format.format(c);
            }
            public static Double getjia(double a,double b){
                double c=a+b;
                return c;
            }
            public static Double getjian(double a,double b){
                double c=a-b;
                return c;
            }
            public static Double getcheng(double a,double b){
                double c=a*b;
                return c;
            }
            public static Double getchu(double a,double b){
                double c=a/b;
                return c;
            }

    好,今天就是这样啦

     

     

  • 相关阅读:
    禁止页面被复制和禁止右键,一段样式一段JS就行了,无需复杂设定!
    你不知道的DIV+CSS的命名规则
    帝国cms提高网站网页打开速度的手段
    帝国cms网站管理系统之安全设置最优化分享
    渗透测试===使用BURPSUIT暴力破解某网站的手机验证码
    并发、并行、同步、异步、多线程的区别?
    python基础===一行 Python 代码实现并行(转)
    python目前安装的包备份
    jmeter,测登录,要不要过滤掉JS,CSS等请求?感觉过滤掉了压出来的数据就不真实?
    几个网站
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/14159203.html
Copyright © 2011-2022 走看看