java拼接字符串的三种方式
第一种是加号;
第二种是StringBuffer或者StringBuilder的append
第三种是concat()
判断中文字符串长度的方法:
/** * 判断汉字的长度 * @param str * @return */ public static int stringLength(String str) { int stringLength = 0; try { if (str != null && !str.equals("")) { stringLength = str.getBytes("GB18030").length; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return stringLength; }
指定长度生成字符串,多的补空格:
public static String addStrLength(String str,Integer strLength){ if(str != null){ Integer nowLength = str.length(); Integer total; for(int i = 0; i<strLength; i++){ str = str + " "; total = stringLength(str); if(total.equals(strLength)){ break; } } return str; }else { str = ""; for (int i=0;i<strLength;i++){ str = str+" "; } return str; } }
在JAVA里采用的是Unicode 编码,中文 英文字符都是占两个字节,所以中英文字符都算一个。
今天遇到和别的系统做对接的时候,遇到的问题记一下。
GBK和UTF-8的互转
public static void main(String[] args) throws UnsupportedEncodingException { String srcString = "我们是中国人"; String utf2GbkString = new String(srcString.getBytes("UTF-8"),"GBK"); System.out.println("UTF-8转换成GBK:"+utf2GbkString); String utf2Gbk2UtfString = new String(utf2GbkString.getBytes("GBK"),"UTF-8"); System.out.println("UTF-8转换成GBK再转成UTF-8:"+utf2Gbk2UtfString); }