客户需求千千万,我以不变应万变。。。
1、去掉首尾空格
2、address1不超过35个字符
3、按(单词+空格)组合计算字符个数
1)若字符个数=∑{(单词+空格)1+(单词+空格)2+…(单词+空格)n+(单词+空格)n+1}<=35;
则取address1={(单词+空格)1、(单词+空格)2、…(单词+空格)n、(单词+空格)n+1}
2)若字符个数=∑{(单词+空格)1+(单词+空格)2+…(单词+空格)n+(单词+空格)n+1}>35;
则取address1={(单词+空格)1、(单词+空格)2、…(单词+空格)n},取address2={(单词+空格)n+1、(单词+空格)n+2、…}
。。。。。。。
巴拉巴拉一堆就是一句地址里面截取前35个字符,地址里都是英文单词空格分割,如果第35个字符是空格,那正好,如果不是空格,则说明截到了单词,如果恰好接到了一个字符的单词,自认倒霉了,那就去之前空格前面的数据就好了,我要做的主要是拿到截取字符串的长度。
public int getSubNum(String adrr) {
if (" ".equals(adrr.substring(34, 35))) {
return 35;
} else {
//有出现长长的一句话里没有空格的情况,导致异常
if (-1==adrr.lastIndexOf(' ', 35)) {
return 35;
}else{
return adrr.lastIndexOf(' ', 35);
}
}
}
调用方法:
String srcaddr = (String)map.get(“srcaddr”);
String srcaddr1;
String srcaddr2;
if(srcaddr.length()>35){
//判断第35是不是空格,是空格则不做处理,不是空格则重新截取前一个空格之前的数据
int subNum = getSubNum(srcaddr);
srcaddr1 = srcaddr.substring(0, subNum);
//去掉头尾的空格
srcaddr2 = srcaddr.substring(subNum).trim;
}else{
srcaddr1 = srcaddr;
srcaddr2 = “”;
}