我有一个像"100010"
这样的二进制字符串。我想将它分成几个两个字符,如 - > "10"
,"00"
,"10"
。
我该怎么办?不幸的是我不知道。
String str = "100010";
int counter=0,end=1;
for (int h = 0; h < str.length(); h++) {
String ss = str.substring(counter, end);
System.out.print(ss);
counter = counter + 2;
end = end + 2;
}
请帮助我。
答案 0 :(得分:3)
由于您要分割每2个字符,因此您需要将counter
和end
之间的差异保持为2
。变量h
是多余的,实际上会导致StringIndexOutOfBoundsException
:
String str = "100010";
int counter = 0;
int end = 2;
while (end <= str.length()) {
String ss = str.substring(counter, end);
System.out.println(ss);
counter += 2;
end += 2;
}
或者,您可以为每2个字符执行正则表达式拆分。这使用了正则表达式后观结合\G
,零宽度断言与上一个匹配结束的位置匹配:
for (String s: "100010".split("(?<=\\G..)")) { System.out.println(s); }
两个版本都产生:
10
00
10
答案 1 :(得分:0)
private String[] StringSpliter(String OriginalString) {
String newString = "";
for (String s: OriginalString.split("(?<=\\G..)")) {
if(s.length()<3)
newString += s +"/";
else
newString += StringSpliter(s) ;
}
return newString.split("/");
}