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

📄 stringutils.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            }
        }

        return strRet;
    }

    /**
     * 格式化字符串,将字符串trim()后返回. 如果字符串为null,则返回长度为零的字符串("")
     * @param value 被格式化字符串
     * @return      格式化后的字符串
     */
    public  static String stringTrim(String value){
        if(value == null) return "";
        return value.trim();
    }

    /**
     * 将一个字符串格式化为给定的长度,过长的话按照给定的长度从字符串左边截取,反之以给定的
     * 字符在字符串右边补足空余位
     * <br>比如:
     * <br>suffixStr("abc",'0',5) 将返回 aaa00
     * <br>suffixStr("abc",'0',2) 将返回 ab
     * @param source  原始字符串
     * @param profix  补足空余位时使用的字符串
     * @param length  格式化后字符串长度
     * @return        返回格式化后的字符串,异常返回null
     */
    public  static String suffixStr(String source,char suffix,int length){
        String strRet = source;
        if(source == null){
            return strRet;
        }
        if(source.length() >= length){
            strRet = source.substring(0,length);
        }

        if(source.length() < length){
            for(int i=0;i<length-source.length();i++){
                strRet += suffix;
            }
        }
        return strRet;
    }

    /**
     * 根据分割符sp,将str分割成多个字符串,并将它们放入一个ArrayList并返回,其规则是最后的
     * 字符串最后add到ArrayList中
     * @param str 被分割的字符串
     * @param sp 分割符字符串
     * @return 封装好的ArrayList
     * @author 高虹  : 友情提供
     */
    public static ArrayList convertStrToArrayList(String str, String sp) {
        ArrayList al = new ArrayList() ;
        if(str == null){
            return al;
        }
        String strArr[] = str.split(sp) ;
        for (int i = 0 ; i < strArr.length ; i ++) {
            al.add(strArr[i]) ;
        }

        return al ;
    }

    /**
     * 将数字字符串转换为人民币大写
     * @param value   金额人民币数字字符串
     * @return 转换后的人民币大写字符串
     * @author 王德春  :  友情提供
     */
    public static String changeToBig(String value)
    {

        if(null == value || "".equals(value.trim()))
            return "零";
//add by Johnson Zhang
        int len = value.length();

        String strCheck,strArr,strFen,strDW,strNum,strBig,strNow;
        double d = 0;
        try {
            d = Double.parseDouble(value);
        } catch(Exception e) {
            return "数据"+value+"非法!";
        }

        strCheck = value+".";
        int dot = strCheck.indexOf(".");
        if(dot > 12) {
            return "数据"+value+"过大,无法处理!";
        }

        try {
            int i = 0;
            strBig = "";
            strDW = "";
            strNum = "";

            //long intFen = (long)(d*100); //原来的处理方法
            /**
             * 增加了对double转换为long时的精度,
             * 例如:(long)(208123.42 * 100) =  20812341 解决了该问题
             * add 庞学亮
             */
            BigDecimal big = new BigDecimal(d);
            big = big.multiply(new BigDecimal(100)).setScale(2 , 4);
            long intFen = big.longValue();

            strFen = String.valueOf(intFen);
            int lenIntFen = strFen.length();
            while(lenIntFen != 0) {
                i++;
                switch(i) {
                    case 1:strDW = "分";break;
                    case 2:strDW = "角";break;
                    case 3:strDW = "元";break;
                    case 4:strDW = "拾";break;
                    case 5:strDW = "佰";break;
                    case 6:strDW = "仟";break;
                    case 7:strDW = "万";break;
                    case 8:strDW = "拾";break;
                    case 9:strDW = "佰";break;
                    case 10:strDW = "仟";break;
                    case 11:strDW = "亿";break;
                    case 12:strDW = "拾";break;
                    case 13:strDW = "佰";break;
                    case 14:strDW = "仟";break;
                }
                switch (strFen.charAt(lenIntFen-1)) {             //选择数字

                    case '1':strNum = "壹";break;
                    case '2':strNum = "贰";break;
                    case '3':strNum = "叁";break;
                    case '4':strNum = "肆";break;
                    case '5':strNum = "伍";break;
                    case '6':strNum = "陆";break;
                    case '7':strNum = "柒";break;
                    case '8':strNum = "捌";break;
                    case '9':strNum = "玖";break;
                    case '0':strNum = "零";break;
                }
                //处理特殊情况
                strNow = strBig;
                //分为零时的情况
                if((i==1) && (strFen.charAt(lenIntFen-1) == '0'))
                    strBig = "整";
                    //角为零时的情况
                else if((i==2)&&(strFen.charAt(lenIntFen-1)=='0')){    //角分同时为零时的情况
                    if(!strBig.equals("整"))
                        strBig = "零"+strBig;
                }
                //元为零的情况
                else if((i==3)&&(strFen.charAt(lenIntFen-1)=='0'))
                    strBig = "元"+strBig;
                    //拾-仟中一位为零且其前一位(元以上)不为零的情况时补零
                else if((i<7)&&(i>3)&&(strFen.charAt(lenIntFen-1)=='0')&&(!(""+strNow.charAt(0)).equals("零"))&&(!(""+strNow.charAt(0)).equals("元")))
                    strBig = "零"+strBig;
                    //拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过
                else if((i<7)&&(i>3)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("零")))
                {}
                //拾-仟中一位为零且其前一位是元且为零的情况时跨过
                else if((i<7)&&(i>3)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("元")))
                {}
                //当万为零时必须补上万字
                //modified by Johnson Zhang
                else if((i==7)&&(strFen.charAt(lenIntFen-1)=='0'))
                    strBig ="万"+strBig;
                    //拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零
                else if((i<11)&&(i>7)&&(strFen.charAt(lenIntFen-1)=='0')&&(!(""+strNow.charAt(0)).equals("零"))&&(!(""+strNow.charAt(0)).equals("万")))
                    strBig = "零"+strBig;
                    //拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过
                else if((i<11)&&(i>7)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("万")))
                {}
                //拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过
                else if((i<11)&&(i>7)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("零")))
                {}
                //万位为零且存在仟位和十万以上时,在万仟间补零
                else if((i<11)&&(i>8)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("万"))&&((""+strNow.charAt(2)).equals("仟")))
                    strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length());
                    //单独处理亿位
                else if(i==11) {
                    //亿位为零且万全为零存在仟位时,去掉万补为零
                    if((strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("万"))&&((""+strNow.charAt(2)).equals("仟")))
                        strBig ="亿"+"零"+strBig.substring(1,strBig.length());
                        //亿位为零且万全为零不存在仟位时,去掉万
                    else if((strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("万"))&&((""+strNow.charAt(2)).equals("仟")))
                        strBig ="亿"+strBig.substring(1,strBig.length());
                        //亿位不为零且万全为零存在仟位时,去掉万补为零
                    else if(((""+strNow.charAt(0)).equals("万"))&&((""+strNow.charAt(2)).equals("仟")))
                        strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length());
                        //亿位不为零且万全为零不存在仟位时,去掉万
                    else if(((""+strNow.charAt(0)).equals("万"))&&((""+strNow.charAt(2)).equals("仟")))
                        strBig = strNum+strDW+strBig.substring(1,strBig.length());
                        //其他正常情况
                    else{
                        if ( ("" + strBig.charAt(0)).equals("万")) {
                            strBig = strNum + strDW +
                                strBig.substring(1, strBig.length()) + " ";
                        } else {
                            strBig = strNum + strDW + strBig;
                        }
                    }

                }  //拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零
                else if((i<15)&&(i>11)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("零"))&&(!(""+strNow.charAt(0)).equals("亿")))
                    strBig = "零"+strBig;
                    //拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过
                else if((i<15)&&(i>11)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("亿")))
                {}
                //拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过
                else if((i<15)&&(i>11)&&(strFen.charAt(lenIntFen-1)=='0')&&((""+strNow.charAt(0)).equals("零")))
                {}
                //亿位为零且不存在仟万位和十亿以上时去掉上次写入的零
                else if((i<15)&&(i>11)&&(strFen.charAt(lenIntFen-1)!='0')&&((""+strNow.charAt(0)).equals("零"))&&((""+strNow.charAt(1)).equals("亿"))&&(!(""+strNow.charAt(3)).equals("仟")))
                    strBig = strNum+strDW+strBig.substring(1,strBig.length());
                    //亿位为零且存在仟万位和十亿以上时,在亿仟万间补零
                else if((i<15)&&(i>11)&&(strFen.charAt(lenIntFen-1)!='0')&&((""+strNow.charAt(0)).equals("零"))&&((""+strNow.charAt(1)).equals("亿"))&&((""+strNow.charAt(3)).equals("仟")))
                    strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length());
                else
                    strBig = strNum+strDW+strBig;
                strFen = strFen.substring(0,lenIntFen-1);
                lenIntFen--;
            }
            return strBig;
        }
        catch(Exception e)
        {
            return "";
        }
    }


}

⌨️ 快捷键说明

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