最近作工程时,遇到须要循环截取字符串的状况,写一篇日记,记录处理方法。java
需求sql
从数据库取回来的数据格式以下:数据库
西南-零起点-香年广场店-煎饼侠服务器
即 有效字符串1-有效字符串2-有效字符串3 ……。code
如今须要根据"-"字符挑选出有效字符串。字符串
java自带的方法以下get
String userInfoAll = "西南-零起点-香年广场店-煎饼侠"; String[] strArray= userInfoAll.split("-"); //接着获取须要的数据 System.out.println("数据1:",strArray[0]); System.out.println("数据2:",strArray[1]); System.out.println("数据3:",strArray[2]); System.out.println("数据4:",strArray[3]);
若是从数据库取回来的数据一直都是 有效字符串1-有效字符串2-有效字符串3- ……的格式,则没有任何问题,如今我从数据库取回来的数据是这样的:it
西南-零起点--
class
这里很明显,后面两个数据在数据库是没有查到的,因此显示成了空白。数据库查询以下select
--查询该客户所属区域、经销商、门店、销售员 select tz.zone_name, tf.fchs_name, ts.store_name, tsr.selr_name into l_zoneName,l_fchsName,l_storeNme,l_selrNme from t_customer tc left join t_zone tz on tc.zone_id = tz.zone_id left join t_franchiser tf on tc.fchs_id = tf.fchs_id left join t_store ts on tc.store_id = ts.store_id left join t_seller tsr on tc.selr_id = tsr.selr_id where trim(tc.idcard_no) = trim(i_idCardNo); --字符串拼接 o_userInfoAll := l_zoneName || '-'|| l_fchsName || '-'|| l_storeNme || '-'||l_selrNme;
很明显,查询结果采用的是左链接,因此说数据可能存在为空的状况,可是此时依然会拼接分隔符"-"。
出现如上问题,个人解决方法以下
判断取回来的有效字符串的个数,而后再取值
java代码以下:
//从服务器取回来的数据 String userInfoAll = (String) map.get("o_userInfoAll"); String[] strArray= userInfoAll.split("-"); String baseInfo = "已存在用户信息:"; System.out.println("从数据库取回来的数据:"+userInfoAll); //赋值 String zoneName = "区域:"+"--"+";"; String fchsName = "经销商:"+"--"+";"; String storeNme = "门店:"+"--"+";"; String selrNme = "销售员:"+"--"+";"; //循环判断取值 if(strArray.length > 3) { zoneName = zoneName.replace("--", strArray[0]); fchsName = fchsName.replace("--", strArray[1]); storeNme = storeNme.replace("--", strArray[2]); selrNme = selrNme.replace("--", strArray[2]); }else if(strArray.length > 2) { zoneName = zoneName.replace("--", strArray[0]); fchsName = fchsName.replace("--", strArray[1]); storeNme = storeNme.replace("--", strArray[2]); }else if(strArray.length > 1) { zoneName = zoneName.replace("--", strArray[0]); fchsName = fchsName.replace("--", strArray[1]); }else if(strArray.length > 0) { zoneName = zoneName.replace("--", strArray[0]); }else { System.out.println("什么也不处理"); } //拼接输出 String strAll = baseInfo+zoneName+fchsName+storeNme+selrNme;自此,结束。