将二进制字符串拆分成几个两个字符?

时间:2013-01-12 15:26:37

标签: java substring

我有一个像"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;
}

请帮助我。

2 个答案:

答案 0 :(得分:3)

由于您要分割每2个字符,因此您需要将counterend之间的差异保持为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("/");
}