要求定义一个类Separate,传入一个字符串和一个整形,Separate(String a, int b) ,能把字符串按照 这样分离:如果字符串是 "abcde123"    , b = 2 ,   那么 返回一个这样的字符串 : "ab,cd,e1,23" 就是 没隔 b个字符串后面加个逗号将字符串分开。 求代码

解决方案 »

  1.   

    import java.util.*;
    public class Separate {
    public static void main(String[] args) {
    Separate2 se = new Separate2("abcdefghijgklll", 2);
    System.out.println(se.result());
    }
    }class Separate2 {

    String src;
    int len;
    String res;

    public Separate2(String src, int len) {
    this.src = src;
    this.len = len;
    }

    public String result() {
    StringBuffer temp = new StringBuffer(src);
    int length = src.length();
    for(int i=0; i<length/len; i++) {
    temp.insert((i+1)*len+i, ',');
    }
    return new String(temp);
    }
    }
      

  2.   

    import java.util.*;
    public class Separate {
    public static void main(String[] args) {
    Separate2 se = new Separate2("abcdefghijgklll", 2);
    System.out.println(se.result());
    }
    }class Separate2 {

    String src;
    int len;
    String res;

    public Separate2(String src, int len) {
    this.src = src;
    this.len = len;
    }

    public String result() {
    StringBuffer temp = new StringBuffer(src);
    int length = src.length();
    for(int i=0; i<length/len; i++) {
    temp.insert((i+1)*len+i, ',');
    }
    return new String(temp);
    }
    }
      

  3.   

    temp.insert((i+1)*len+i, ',');
    理解这一句就好了,还有使用StringBuffer会提高效率。
      

  4.   


    public static void main(String[] args) {
    String str = "abcde123";
    str = Separate(str, 3);
    System.out.println(str);
    }
    public static String Separate(String src, int n){
    String dots = "";
    for(int i=0;i<n;i++){
    dots += ".";
    }
    return src.replaceAll("("+dots+")(?!$)", "$1,");
    }