1

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

请帮我。

4

2 回答 2

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 个字符进行一次正则表达式拆分。这使用正则表达式look-behind结合\G,零宽度断言匹配上一个匹配结束的位置:

for (String s: "100010".split("(?<=\\G..)")) { System.out.println(s);  }

两个版本都产生:

10
00
10
于 2013-01-12T15:44:10.017 回答
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("/");
}
于 2014-04-07T14:28:26.207 回答