java 循环截取字符串_Java --循环截取字符串

最近做工程时,遇到需要循环截取字符串的情况,写一篇日记,记录处理方法。

需求

从数据库取回来的数据格式如下:

西南-零起点-香年广场店-煎饼侠

即  有效字符串1-有效字符串2-有效字符串3 ……。

现在需要根据"-"字符挑选出有效字符串。

java自带的方法如下

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- ……的格式,则没有任何问题,现在我从数据库取回来的数据是这样的:

西南-零起点--

这里很明显,后面两个数据在数据库是没有查到的,所以显示成了空白。数据库查询如下

--查询该客户所属区域、经销商、门店、销售员

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;自此,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值