拆分小特定长度部件中的String并返回所有这些部件

时间:2014-12-09 11:48:54

标签: java string string-length

我有一个字符串,我想制作该字符串的一部分(最多3个部分),每个部分将是153.例如,如果字符串是160,那么第一部分将是153,第二部分将是b的7。

public class Split {
    public String splitMsg(String s) {
        int len=s.length();//300
        int parts =(len/153)+1;//3
        int startindex=0,endindex=153;
        System.out.println(parts);
        String[] chunks=new String[parts];

        for(int i=0;i<parts;i++) {
            if(endindex<len) {
                String s1=s.substring(startindex, endindex);
                chunks[i]=s1;
                System.out.println(chunks[i]);
                startindex=endindex+1;
                endindex=len-startindex;
            }
        }
        return "";
    }

    public static void main(String a[]) {
        Split s=new Split();
        s.splitMsg("TejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejas");
    }
}

3 个答案:

答案 0 :(得分:0)

试试这个:

String str = "MyLoooooooooooooooooooongString";
    int number = 153;
    String[] strs = new String[str.length() / number + 1];
    int length;
    for (int i = 0; i < str.length(); i += number) {
        length = i + number;
        strs[i / number] = str.substring(i, length > str.length() ? str.length()
                : length);
    }

    System.out.println(Arrays.toString(strs));

答案 1 :(得分:0)

这可能对你有所帮助!您的代码中需要进行轻微修改。

public static void main(String[] args) {
String s="TejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejas";
List list = new ArrayList();
String st = "";

for(int i=1; i<=s.length(); i++){
    if(i==1 || i%153==0){
        if(i!=1) list.add(st);
        st = "";
    }
    st += s.charAt(i-1);
}
// iterate list to see the parts
for(int i=0; i<list.size(); i++){
    System.out.println(list.get(i).toString());
}
}

答案 2 :(得分:0)

public static void main(String[] args) {
    String s = "TejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejasTejas";

    int sLen = s.length();
    System.out.println("sLen=" + sLen);

    int maxPartLength = 153;

    int partsTotal = (int) Math.ceil(sLen/(double)maxPartLength);
    System.out.println("partsTotal=" + partsTotal);

    String[] parts = new String[partsTotal];
    for (int p = 0; p < partsTotal; p++) {
        int strIndex = maxPartLength*p;
        int endIndex = strIndex + maxPartLength;
        endIndex = endIndex > sLen ? sLen : endIndex;
        parts[p] = s.substring(strIndex, endIndex);
        System.out.println("part=" + parts[p]);
    }
}