java中经常用到的一些使用方法

比较乱,呵呵!懒得分类了!包括编码格式转换,处理字符串,大写金额处理

 

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 公用处理类,
 *
 * @author liugang
 */
public final class Convert {
 /**
  * 编码格式 ISO --> GBK
  *
  * @param strCode
  * @return
  */
 public static String convertIsoToGbk(String strCode) {
  try {
   if ((strCode == null) || (strCode.equals(""))) {
    return "";
   }
   strCode = strCode.trim();
   strCode = new String(strCode.getBytes("ISO-8859-1"), "GBK");
  } catch (UnsupportedEncodingException e) {
   System.out.println("error--->Convert.convertIsoToGbk:不受支持的字符集格式!");
  }
  return strCode;
 }

 /**
  * 编码格式 GBK --> ISO
  *
  * @param strCode
  * @return
  */
 public static String convertGbkToIso(String strCode) {
  try {
   if ((strCode == null) || (strCode.equals(""))) {
    return "";
   }
   strCode = strCode.trim();
   strCode = new String(strCode.getBytes("GBK"), "ISO-8859-1");
  } catch (UnsupportedEncodingException e) {
   System.out.println("error--->Convert.convertGbkToIso:不受支持的字符集格式!");
  }
  return strCode;
 }

 /**
  * 编码格式 ISO --> UTF8
  *
  * @param strCode
  * @return
  */
 public static String convertIsoToUtf8(String strCode) {
  try {
   if ((strCode == null) || (strCode.equals(""))) {
    return "";
   }
   strCode = strCode.trim();
   strCode = new String(strCode.getBytes("ISO-8859-1"), "UTF-8");
  } catch (UnsupportedEncodingException e) {
   System.out.println("error--->Convert.convertIsoToUtf8:不受支持的字符集格式!");
  }
  return strCode;
 }

 /**
  * 判断list是否为空(null 或是 size=0)
  *
  * @param list
  * @return 空返回true 否则返回false
  */
 public static boolean checkIsNull(List<?> list) {
  if (list != null && list.size() > 0) {
   return false;
  }
  return true;
 }

 /**
  * 判断set是否为空(null 或是 size=0)
  *
  * @param set
  * @return 空返回true 否则返回false
  */
 public static boolean checkIsNull(Set<?> set) {
  if (set != null && set.size() > 0) {
   return false;
  }
  return true;
 }

 /**
  * 判断map是否为空(null 或是 size=0)
  *
  * @param map
  * @return 空返回true 否则返回false
  */
 public static boolean checkIsNull(Map<?, ?> map) {
  if (map != null && map.size() > 0) {
   return false;
  }
  return true;
 }

 /**
  * 处理字符串,去掉空格
  *
  * @param inStr
  *            待处理字符串
  * @return 如果null返回”“,否则返回去掉空格的字符串
  */
 public static String convertNull(String inStr) {
  if (inStr == null) {
   return "";
  } else {
   return inStr.trim();
  }
 }

 /**
  * 处理字符串;如果字符串为空返回的默认字符串,否则返回去掉空格的字符串
  *
  * @param inStr
  *            待处理字符串
  * @param defaultStr
  *            如果为空返回的默认字符串
  * @return 如果为空返回的默认字符串,否则返回去掉空格的字符串
  */
 public static String convertNull(String inStr, String defaultStr) {
  if (inStr == null || "".equals(inStr)) {
   return defaultStr;
  } else {
   return inStr.trim();
  }
 }

 /**
  * 处理字符串;根据设定的字符长度对输入的字符串使用默认字符补齐
  *
  * @param inStr
  *            待处理字符串
  * @param addStr
  *            补齐使用的字符
  * @param strLen
  *            字符串的最终长度
  * @param posFlag
  *            标示补齐的字符放到前边还是后边,0_前边,1_后边
  * @return 处理完成的字符串
  */
 public static String convertNull(String inStr, String addStr, int strLen,
   int posFlag) {
  String str = "";
  if (inStr.endsWith("") || inStr == null) {
   return "";
  }
  while (str.length() < strLen) {
   if (posFlag == 0) {
    str = addStr + str;
   } else {
    str = str + addStr;
   }
  }
  return str;
 }

 /**
  * 判断字符是否是数字组成
  *
  * @param str
  * @return 是数字:true,不是:false
  */
 public static boolean isNumber(String str) {
  try {
   @SuppressWarnings("unused")
   Double d = Double.parseDouble(str);
  } catch (NumberFormatException e) {
   return false;
  }

  return true;
 }
  

/** 
 * 将数字型货币转换为中文型货币 <br/> 
 * @param moneyValue 
 *             字符串形式的金额,小数部分,将多于3位部分舍去,不做四舍五入 
 * @return 
 */ 
private final static String[] CN_Digits = { "零", "壹", "貳", "叁", "肆", "伍","陆", "柒", "捌", "玖", };
public static String moneyNumToCap(String moneyValue) {  
    //使用正则表达式,去除前面的零及数字中的逗号  
    String value = moneyValue.replaceFirst("^0+", "");  
    value = value.replaceAll(",", "");  
    //分割小数部分与整数部分  
    int dot_pos = value.indexOf('.');  
    String int_value;  
    String fraction_value;  
    if (dot_pos == -1) {  
        int_value = value;  
        fraction_value = "00";  
    } else {  
        int_value = value.substring(0, dot_pos);  
        fraction_value = value.substring(dot_pos + 1, value.length())  
                + "00".substring(0, 2);//也加两个0,便于后面统一处理  
    }  

    int len = int_value.length();  
    if (len>16) return "值过大";  
    StringBuffer cn_currency = new StringBuffer();  
    String[] CN_Carry = new String[] { "", "万", "亿", "万" };  
    //数字分组处理,计数组数  
    int cnt = len/4+(len%4==0?0:1);  
    //左边第一组的长度  
    int partLen = len-(cnt-1)*4;  
    String partValue=null;  
    boolean bZero=false;//有过零  
    String curCN=null;  
    for(int i =0; i<cnt; i++){  
        partValue = int_value.substring(0,partLen);  
        int_value=int_value.substring(partLen);  
        curCN = Part2CN(partValue,i!=0&&!"零".equals(curCN));  
        //System.out.println(partValue+":"+curCN);  
        //若上次为零,这次不为零,则加入零            
        if(bZero && !"零".equals(curCN)){  
            cn_currency.append("零");  
            bZero=false;  
        }  
        if("零".equals(curCN))bZero=true;  
        //若数字不是零,加入中文数字及单位  
        if(!"零".equals(curCN)){  
            cn_currency.append(curCN);  
            cn_currency.append(CN_Carry[cnt-1-i]);  
        }  
        //除最左边一组长度不定外,其它长度都为4  
        partLen=4;  
        partValue=null;  
    }  
    //如果钱数不到元不添加”元“
    if(!cn_currency.toString().equals("")){
     cn_currency.append("元");
    }
      
    //处理小数部分  
    int fv1 = Integer.parseInt(fraction_value.substring(0,1));  
    int fv2 = Integer.parseInt(fraction_value.substring(1,2));  
    if(fv1+fv2==0){  
        cn_currency.append("整");  
    }  
    else{  
        cn_currency.append(CN_Digits[fv1]).append("角");  
        cn_currency.append(CN_Digits[fv2]).append("分");  
    }  
    return cn_currency.toString();  
}  

/** 
 * 将一组数字(不多于四个)转化成中文表示 (moneyNumToCap使用)
 * @param partValue 字符串形式的数字 
 * @param bInsertZero 是否在前面添加零 
 * @return 
 */ 
private static String Part2CN(String partValue,boolean bInsertZero) {  
    //使用正则表达式,去除前面的0  
    partValue = partValue.replaceFirst("^0+", "");  
    int len = partValue.length();  
    if (len == 0)  
        return "零";  
    StringBuffer sbResult = new StringBuffer();  
    int digit;  
    String[] CN_Carry = new String[] { "", "拾", "佰", "仟" };  
    for (int i = 0; i < len; i++) {  
        digit = Integer.parseInt(partValue.substring(i, i + 1));  
        if (digit != 0) {  
            sbResult.append(CN_Digits[digit]);  
            sbResult.append(CN_Carry[len - 1 - i]);  
        } else {  
            // 若不是最后一位,且下不位不为零,追加零  
            if (i != len - 1 
                    && Integer.parseInt(partValue.substring(i + 1, i + 2)) != 0)  
                sbResult.append("零");  
        }  
    }  
    if(bInsertZero && len!=4)sbResult.insert(0, "零");  
    return sbResult.toString();  
}  

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值