簡體   English   中英

JAVA 數組的值需要根據大小存儲在多個字段中

[英]JAVA Array of values need to store in multiple fields based on size

我正在嘗試將此字符串拆分為數組格式,並嘗試根據值的大小存儲在字段 name1,name2.. 中,並且提交的名稱必須只有 26 個字符。

姓名: Bommiraj Sitaramanjaneyulu Rajasekhara Srinivasulu Laxminarayana Siva Venkata Sai

預期結果: name1= Bommiraj Sitaramanjaneyulu ,name2=Rajasekhara srinivasulu,name3=Laxminarayana Siva Venkata,name4=sai,name5=""。

實際結果:名稱字段 1:Bommiraju Rajasekhara Siva,名稱字段 2:Venkata Sai

String Testname=nameFormat("    Bommiraj     Sitaramanjaneyulu Rajasekhara   Srinivasulu Laxminarayana Siva  Venkata  Sai ");   

String formatedName=name.trim().replaceAll("\\s{2,}", " ");

    String[] splitedName = formatedName.split("\\s+");

    String name1="";
    String name2="";
    String name3="";
    String name4="";
    String name5="";
    for (String string : splitedName) {
        if (name1.length()==0) {
            name1+=string;
        }else if (name1.length()>0 && name1.length()<26){
            if (string.length()+name1.length()<26) {
                name1+=" "+string;
            }            
        }else if (name2.length()==0) {
            name2+=string;
        }else if (name2.length()>0 && name2.length()<26) {
            if (string.length()+name2.length()<26) {
                name2+=" "+string;
            }
        }
    }

如果算上名字 Bommiraju Sitaramanjaneyulu 的大小,則有 26 個字符和一個空格。 您的if語句<26因此最多只能使用 25 個字符而沒有空格。

更一般地說,我建議將名稱存儲為String[]並跟蹤您的位置。 在您當前的代碼中,名稱可能會轉到 string2,但較短的較晚名稱可以轉到 string1,我認為這不是您希望做的。 根據您的具體需求,我建議從string[0] ,然后填充它直到當前字符串不適合,然后移到string[1]並填充它,等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM