模式匹配器 - 按指定长度拆分

时间:2012-07-24 14:02:00

标签: java

我需要将我的字符串拆分为一些指定的长度(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”个字符串分配给单独的变量。我对此没有任何想法。请帮帮忙。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

the answer Jack gave

为基础
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;
}

不要使用模式匹配器。在正则表达式不是基本概念的语言中,不要使用不需要它们的正则表达式。在中,您可以使用正则表达式执行所有操作,但不会这样做。