在每两个字符后拆分一个字符串

时间:2013-08-01 12:12:40

标签: java string

我想在每两个字符后分割一个字符串。

例如:

String aString= "abcdef"

我希望在分割后"ab cd ef"

我该怎么做?

谢谢:)

10 个答案:

答案 0 :(得分:6)

如果您希望输出与具有额外空格的相同字符串,您只需使用:

String newString = aString.replaceAll("(..)", "$1 ")

答案 1 :(得分:6)

使用正则表达式:

        String str= "abcdef";

        String[] array=str.split("(?<=\\G.{2})");

        System.out.println(java.util.Arrays.toString(array));       

<强>输出:

  

[ab, cd, ef]

答案 2 :(得分:4)

这个负面的looakahead 基于正则表达式应该适合你:

String repl = "abcdef".replaceAll("..(?!$)", "$0 ");

PS:这将避免在最后一场比赛后添加空格,因此您可以获得此输出:

"ab cd ef"

而不是:

"ab cd ef "

答案 3 :(得分:1)

试试这个

    String[] a = "abcdef".split("(?<=\\G..)");
    System.out.println(Arrays.asList(a));

输出

[ab, cd, ef]

答案 4 :(得分:0)

你可以像这里一样轻松地做到:

    String k = "sdfjsdf";
    String s = "";
    for (int i=0;i<k.length();i++){
        s+=k.charAt(i);
        if (i%2 != 0){
            s+=" ";
        }
    }

答案 5 :(得分:0)

String s = "teststr";
StringBuilder tmp = new StringBuilder();

for (int i = 0; i < s.length(); i++) {
    tmp.append(s.charAt(i));
    if (i % 2 == 1) tmp.append(" ");
}

System.out.println(tmp.toString());

答案 6 :(得分:0)

试试这个:

StringBuilder sb= new StringBuilder();
for (int i=0; i<s.length()-2;i+=2){
     sb.append(s.substring(i, i+2));
 if (i!=s.length()-3){
    sb.append(" ");
     }
}

答案 7 :(得分:0)

public static void main(String[] args) {

    String st = "abcdefg";
    ArrayList<String> array = new ArrayList<String>();

    int i = 0;
    while(i<st.length())
    {
        int j=i+2;
        if(j>st.length())
            j=st.length();
        array.add(st.substring(i,j));
        i=j;
    }

    System.out.println(array);

}

答案 8 :(得分:0)

String aString= "abcdef";       
int partitionSize=2;
for (int i=0; i<aString.length(); i+=partitionSize)
{
    System.out.println(aString.substring(i, Math.min(aString.length(), i + partitionSize)));
}

答案 9 :(得分:0)

试试这个

    String aString= "abcdef";
    String[] arr=aString.split("(?<=\\G.{2})");