在一个字符串的相同指定长度间隔处插入指定字符串
2016-03-16 16:22
375 查看
/**
* 在一个字符串的相同指定长度间隔处插入指定字符串
*
* @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
测试下来发现略低效的
* 在一个字符串的相同指定长度间隔处插入指定字符串
*
* @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
测试下来发现略低效的
相关文章推荐
- 十个最常见的Java字符串问题(翻译)
- 基于Java字符串 "==" 与 "equals" 的深入理解
- Java String 字符串
- Java核心技术之字符串,数组,数组工具类
- 【Java字符串高效率】统计单词统计个数
- java中字符串String的深入浅出
- Java.lang.String 类常用方法
- 黑马程序员-->10_字符串操作
- java字符串十问答备用
- java基础 JAVAString StringBuffer StringBuilder
- 从字节码视角看java字符串的拼接
- java程序中比较常见的四种判断是否为空的性能优化比较
- Java源代码阅读——字符串相关
- java小算法—查找字符串中第一次没有重复的字符
- Java字符串与时间戳的相关转换
- 《String》
- JAVA--字符串
- Java字符串
- 一个实用的java字符串工具类(截取,去尾,转码)
- Java的字符串String