一道简单的字符串算法题,有空的大虾进来帮忙看看呀~~~

/**
* 该方法将传入的字符串 从右往左按照指定的insertNumber值位 插入一个指定的insertChar代表的符号.
*
* @param str
* 需要进行转换的字符串
* @param insertChar
* 需要插入的字符
* @param insertNumber
* 字符插入的位置
* @return 返回一个插入后的新字符串 举例,如果传入的字符串值为"123909000",
* insertChar为">>",insertNumber为4 则返回"1>>2390>>9000"
*/
public String conver(String str, String insertChar, int insertNumber) {

    }

题就这个方法,具体需要实现什么,方法注释都写好了。我想了好久都写不出来,用split方法似乎也不行,因为split里的参数必须在该字符串中有,而这题的要求又不是这样。如:逗号进行分割,分割的条件是3位。例如:1234分割后位1,234 ~~~~ 如:@进行分割,分割的条件是3位。例如:1234分割后位1@234, ~~~~ 感觉好像是往字符里追加符号,实在做不出来了。麻烦哪位帮忙解答下。谢谢啊,十分感谢~~~~分不多。。。请帮个忙~~~

刚写了下,你看看。
应该还可以优化。
[code="java"]public String conver(String str, String insertChar, int insertNumber) {

    StringBuffer res = new StringBuffer();  //最终返回的结果
    StringBuffer unStr = new StringBuffer(); //存放反序的字符串

    int length = str.length();
    for(int i = length - 1 ; i >= 0 ; i--){
        if( insertNumber < length && i % insertNumber == 0 && i != length - 1 ){
            unStr.append(insertChar);
        }
        unStr.append(str.charAt(i));
    }
    System.out.println("反序:"+unStr.toString());

    for(int i = unStr.length() - 1 ; i >= 0 ; i--){
        res.append(unStr.charAt(i));
    }
    System.out.println("结果:"+res.toString());
    return res.toString();  
}

[/code]

很简单啊,将String打散为char[]。再逆序遍历一次就是了

[code="java"] public static String conver(String str, String insertChar, int insertNumber) {
StringBuilder sb = new StringBuilder();
int i = 1, length = str.length();
while(i <= length){
sb.insert(0,str.charAt(length - i));
if ((i != length) && (i%insertNumber == 0)){
sb.insert(0,insertChar);
}
i++;
}
return sb.toString();
}[/code]