我需要将我的字符串拆分为一些指定的长度(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”个字符串分配给单独的变量。我对此没有任何想法。请帮帮忙。
答案 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)
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;
}
不要使用模式匹配器。在正则表达式不是基本概念的语言中,不要使用不需要它们的正则表达式。在perl中,您可以使用正则表达式执行所有操作,但不会这样做。