Java --循環截取字符串

最近作工程時,遇到須要循環截取字符串的狀況,寫一篇日記,記錄處理方法。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;
自此,結束。
相關文章
相關標籤/搜索