⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func.java

📁 这是一个用J2ME开发的计算器程序
💻 JAVA
字号:
package Calc;

import java.util.*;
public class Func {
    public Func() {}

    public String subS(String s, int i, int j) {        //i,j之间的字符串
        i = ( (i > s.length()) ? s.length() : ( (i < 0) ? 0 : i ) );
        j = ( (j > s.length()) ? s.length() : ( (j < 0) ? 0 : j ) );
        if (i > j) {
            s = s.substring(j, i);
        } else {
            s = s.substring(i, j);
        }
        return s;
    }

    public String sSub(String s, int i, int j) {        //从i开始,取j个长度
        i = ( (i > s.length()) ? s.length() : ( (i < 0) ? 0 : i ) );
        j = ( (j > s.length()) ? s.length() : ( (j < 0) ? 0 : j ) );
        j = ( (i+j > s.length()) ? s.length() : i + j );
        s = s.substring(i, j);
        return s;
    }

    public String sLeft(String s, int i) {              //左边i个字符
        i = ( (i > s.length()) ? s.length() : ( (i < 0) ? 0 : i ) );
        s = s.substring(0, i);
        return s;
    }

    public String sRight(String s, int i) {              //右边i个字符
        i = ( (i > s.length()) ? s.length() : ( (i < 0) ? 0 : i ) );
        s = s.substring(s.length() - i, s.length());
        return s;
    }

    public String sLess(String s, int i) {
        s = (i > 0 ? sLeft(s, s.length()-i) : sRight(s, s.length()+i));
        return s;
    }

    public String sThree(String s, String sc) {          //加上3位分隔符
        String s1 = "";
        int j = 0, k = 0;
        for (int i = 0; i < s.length(); i++) {
            s1 = s.substring(i,i+1);
            if ( "0123456789".indexOf(s1) >= 0 ) { j++; }
            else if (s1.equals("-")) { j++; k = 1; }
            else if (".%".indexOf(s1) >= 0) { break; }
            else { j = -1; break; }
        }
        for (int i = j-3; i > k ; i-=3) {
            s = s.substring(0, i) + sc + s.substring(i);
        }
        return s;
    }

    public String sComma(String s, String sc) {           //去掉3位分隔符
        //StringBuffer s2 = new StringBuffer("");
        //char s1;
        String s2 = "", s1="";
        for (int i = 0; i < s.length(); i++) {
            s1 = s.substring(i,i+1);
            s2 += (s1.equals(sc) ? "" : s1);
        }
        return s2;
        //return s2.toString();
    }

    public String sDecimal(String s, int deci, int ssw) { //小数点儿位数
        if (deci < 0) {
            return s;
        } else {
            //int j = s.indexOf(".");
            //if ( j <= 0 ) { return s;}                           //无点儿
            //else if (s.length() <= j + deci + 1) {return s;}     //长度未超出
            //String s0 = "", s1 = "", s2 = "";
            //for (int i = 0; i < s.length(); i++) {
            //    s1 = s.substring(i, i+1);
            //    if (("-.0123456789").indexOf(s1) < 0) { return s;}//数字为科学计数法或其他的
            //    if ( i < j + deci ) { s0 += s1; }
            //    else if (i == j + deci) {
            //        s2 = s.substring(i+1, i+2);             //后一位
            //        if ( "0123456789".indexOf(s2) >= 0 ) {  //是数字
            //            if (Integer.parseInt(s2) >= ssw) {  //四舍五入
            //                s0 += Integer.toString((Integer.parseInt(s1) + 1) % 10);
            //            } else {s0 += s1;}
            //            break;
            //        }
            //    }
            //    else {}
            //}
            s = Double.toString(dDecimal(Double.parseDouble(s), deci, ssw));
            return s;
        }
    }

    public double dDecimal(double d0, int deci, int ssw) {    //四舍五入,数字、几位小数、几入(少则舍,如9表时切掉,0表明全入,5四舍五入)
        if (deci < 0 || deci > 15) { return d0;}
        else {
            double d1 , d2 ;
            long l0 = 1, l1, l2;
            for (int i = 0; i < deci; i++) { l0 = l0 * 10; }
            d1 = d0 % 1;                            //小数
            if (d1 == 0) {return d0;}
            //System.out.println("d1:"+d1);
            l1 = (long) (d1 * l0);                  //变为整数
            l2 = (long) ((d1 * l0 * 10) % 10);      //后一位
            l2 = (l2 >= ssw ? 1 : 0);               //舍或入
            l1 += l2;
            //System.out.println("l1:"+l1);
            d2 = ((double) (l1)) / ((double) (l0)); //变为小数
            //System.out.println("d2:"+d2);
            d0 = d0 - d1 + d2;                      //结果
            //d2 = ((d2%1) > ssw ? d1*10 : 0);
            //System.out.println("d1:"+d1);
            //d0 = d0 - d2 + d1;
            //System.out.println("d0:"+d0);
            return d0;
        }
    }

    public String trimResult(String s, int m) {                //限制数字长度
        if (s.length() < m) { return s;}
        if (!isNum(s)) { return s;}
        double d0;
        int i = 0;
        d0 = Double.parseDouble(s);
        boolean b = (d0 < 0);
        d0 = Math.abs(d0);
        while (d0 > 10) {
            d0 = d0 / 10;
            i ++;
        }
        while (d0 < 1) {
            d0 = d0 * 10;
            i --;
        }
        if (i == 0) { return s;}
        s = Double.toString(d0);
        s = (s.length() > m - 5 ? s.substring(0, m - 5) : s);
        s += " E" + (i>0 ? "+" : "") + Integer.toString(i);
        s = (b ? "-" : "") + s;
        //System.out.println(s);
        return s;
    }

    public String trimZero(String s) {                         //去掉数值尾0
        String s1 = "";
        int k = 0;
        int i = s.indexOf(".");
        if ( i > 0 ) {
            for (int j = i + 1; j < s.length(); j++) {
                s1 = s.substring(j, j+1);
                if ( s1.equals("0") ) { k ++; }
                else if ( "0123456789".indexOf(s1) >= 0 ) { k = 0; }
                else { k = 0;      break; }
            }
        }
        if ( k > 0 ) { s = sLess(s, k); }
        if (s.endsWith(".") ) { s = sLess(s, 1); }
        return s;
    }

    public boolean isNum(String s) {                            //看字符串能否转为数值
        try {
            double i1 = Double.parseDouble(s);
            return true;
        } catch (NumberFormatException ne) {
            return false;
        }
    }



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -