在一个字符串的相同指定长度间隔处插入指定字符串

来源:互联网 发布:mybatis显示sql语句 编辑:程序博客网 时间:2024/06/05 11:34

/** * 在一个字符串的相同指定长度间隔处插入指定字符串 *  * @param target 需要处理的字符串 *  * @param size 指定长度 *  * @param insert 插入的字符串,默认为 "<br/>" * @return */public static String collapseString(String target, int size, String insert){if(StringUtils.isEmpty(target)) return target; //目标字符串为空,返回目标字符串int target_length = target.length();if(target_length <= size) return target; //目标字符串长度等于间隔长度 , 返回目标字符串insert = StringUtils.isEmpty(insert) ? "<br/>" : insert;//插入次数int times = 0;if(target_length % size == 0){times = target_length / size - 1;}else{times = target_length / size;}//结果字符集char [] result_chars = new char[target_length + times];//目标字符集char [] target_chars = new char[target_length];//将字符串数据装入目标字符集target.getChars(0, target_length, target_chars, 0);//遍历目标字符集,将值插入到结果字符集int j = 0;for(int i = 0; i < target_chars.length; i++){//间隔处插入值if(i > 0 && i % size == 0){result_chars[j] = '`';j = j + 1;}result_chars[j] = target_chars[i];j = j + 1;}String resultStr = new String(result_chars);return resultStr.replaceAll("`", insert);}public static void main(String[] args) {//测试用例:在第五个位置插入短下划线System.out.println(collapseString("AAAAAAAAA", 5, "_"));}




输出:AAAAA_AAAA


测试下来发现略低效的

0 0