问题说明:
由于发送短信的短信内容有200个字符的限制,若字符串长度过程写入短信表的时候会因长度过程无法插入。
解决方式:
分割待发送的短信内容字符串,分割成200个字符为单位的数组,循环数组写入短信表。主要重点在于中文的长度判断。
public static String[] splitStrToArray(String str, int length){ int i = 0; boolean isNum = true; StringBuffer sb = new StringBuffer(""); char[] c = str.toCharArray(); for(int k=0 ; k<c.length; k++){ isNum = true; if(c[k] > 255){ i+=2; isNum = false; }else { i++; } if(i >= length + 1){ sb.append(" | "); if(isNum){ i=1; }else { i=2; } } sb.append(c[k]); } return sb.toString().split("\\|"); }
其中使用字符 “ | ” 来分隔,也就是说源字符串中不能出现 “ | ” ,有待改进。