0

我需要将我的字符串拆分成一些指定的长度(10 个字符)。

下面是我的代码:

Pattern p = Pattern.compile(".{0,10}");
Matcher m = p.matcher("012345678901234567890123456");
List<String> emailStr = new ArrayList<String>();
while(m.find())
{
   System.out.println(m.group());
}

至于我的要求,我将获得最多 3 个字符串。我想将这个“n”个字符串分配给单独的变量。我对此没有任何想法。请帮忙。

4

2 回答 2

0

你可以使用它来得到你想要的:

public static String[] splitter(String str, int len) {
    String[] array = new String[(int) str.length() / len + 1];
    for (int i = 0; i < str.length() / len + 1; i++) {
        String s = "";
        for (int j = 0; j < len; j++) {
            int index = i * len + j;
            if (index < str.length())
                s += str.charAt(i * len + j);
            else
                break;
        }
        array[i] = s;
    }
    return array;
}
于 2012-07-24T14:16:36.310 回答
0

基于杰克给出的答案

public List<String> splitter(String str, int len) {
  ArrayList<String> lst = new ArrayList<String>((str.length() - 1)/len + 1);
  for (int i = 0; i < str.length(); i += len)
    lst.add(str.substring(i, Math.min(str.length(), i + len)));
  return lst;
}

不要为此使用模式匹配器。不要在不需要的地方使用正则表达式,在正则表达式不是基本概念的语言中。在中,您可以使用正则表达式做所有可以做的事情,否则不要。

于 2012-07-24T14:21:59.547 回答