将字符串拆分为N个字符串

时间:2011-09-23 10:57:34

标签: java string split char

我想将一个字符串拆分为N个2char字符串。我知道我必须使用String.subSequence。但是我希望它继续创建这些,直到字符串为> 2

2 个答案:

答案 0 :(得分:3)

试试这个:

int n = 3;
String s = "abcdefghijkl";

System.out.println(Arrays.toString( s.split("(?<=\\G.{2})(?=.)", n + 1 ) ) );

//prints: [ab, cd, ef, ghijkl], i.e. you have 3 2-char groups and the rest

正则表达式的工作原理如下:从最后一个匹配位置((?<=...))开始,在至少一个字符(零之前)找到2个字符后面的任何位置(\G后面的零宽度正面外观) -width positive look ahead (?=.))。这不应该匹配字符串开头和结尾的位置,因此n可以根据需要大小,而不会在开头或结尾处产生空字符串。

编辑:如果你想尽可能地分割,只需省去第二个要分割的参数。

示例:

String digits = "123456789";

System.out.println(Arrays.toString( digits.split("(?<=\\G.{2})(?=.)" ) ) ); //no second parameter

//prints: [12, 34, 56, 78, 9]

答案 1 :(得分:1)

String s = "asdasdasd";
List<String> segments = new ArrayList<String>();
for (int i = 1; i < s.length(); i=i+2) {
    segments.add(s.substring(i-1, i+1));
}
System.out.println(segments.toString());