JAVA值数组需要根据大小存储在多个字段中

时间:2018-02-25 10:54:26

标签: java arrays

我正在尝试将此字符串拆分为数组格式,并尝试根据值的大小存储在字段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;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

如果计算出名字Bommiraju Sitaramanjaneyulu的大小,则有26个字符和一个空格。您的if语句为<26,因此最多只能包含25个不带空格的字符。

更一般地说,我建议将这些名称存储为String[]并跟踪您所处的位置。在您当前的代码中,名称可能会转到string2,但较短的后来的名称可以转到string1,我认为这不是您想要做的。根据您的确切需要,我建议您从string[0]开始,然后将其填满,直到当前字符串不适合,然后转到string[1]并填写,等等。