根据字符串的长度拆分字符串

时间:2015-07-24 07:45:11

标签: java android arrays string string-split

我有一个输入String到程序,我需要在我的方法中执行此String,但我想在字符串小于或等于20个字符时执行它,所以我想将此String拆分为多个如果字符串超过20个字符,则为字符串 也就是说,输入字符串的字符数为90个字符,然后变为5字符串20 + 20 + 20 + 20 + 10 = 90。

我需要每20个字符字符串和最后一个字符串执行此代码:

try {
            enMessage = AES.encrypt(key, message);
            sendSMS(contact, enMessage);
        } catch (Exception e) 

所以它可以使每个20个字符是一条消息。

4 个答案:

答案 0 :(得分:1)

您可以使用String的子字符串方法来分割您想要的字符串。

您可以在这里阅读有关如何使用它的信息

Java String Documentation

答案 1 :(得分:1)

我在本网站上看到的此类代码的最佳示例是:

public class StringSplitter {

    /* regex was stolen from other stackoverflow answer*/
    public static void main(String[] args) {
        for (String str : "123a4567a8sdfsdfsdgasfsdfsdgsdcvsdfdgdfsdf9".split("(?<=\\G.{20})"))
            System.out.format("\'%s\'%n", str);
    }

}

答案 2 :(得分:0)

试试这个:

ArrayList<String> allstrings = new ArrayList<>();

if(inputstring.length() < 20) {
    //no spliting
} else {
    //if 90 char than 90/20=4.5
    float numberOfspliting = inputstring.length / 20f; 

    for(int i = 0; i < numberofspliting; i++){
        String split = inputstring.substring(i * 20, i * 20 + 20);
        allstrings.add(split);
    }
    //like 4.5-4=0.5
    float leftcharacters = numberofspliting - (int)numberofspliting;

    String lastsplit = inputstring.substring((int)numberofspliting * 20, (int)numberofspliting * 20 + leftcharacters * 20f);

    allstrings.add(lastsplit);

}//end if

答案 3 :(得分:0)

您可以尝试这样做:

package com.me;

import java.util.*;
import java.lang.*;
import java.io.*;

public class Test
{
        public static List<String> splitMyString(String textValue, int textSize) {        
        ArrayList<String> myNewList= new ArrayList<String>((textValue.length() + textSize- 1) / textSize);

        for (int start = 0; start < textValue.length(); start += textSize) {
            myNewList.add(textValue.substring(start, Math.min(textValue.length(), start + textSize)));
        }
        System.out.println(myNewList.toString());
        return myNewList;
     }
    public static void main(String[] args) {

        Test.splitMyString("1234546512312312312312365", 5);

    }
}

<强>输出:

  

成功时间:0.1记忆:[12345,46512,31231,23123,   12365]

相关问题