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

	
	/**
	 * 在一个字符串的相同指定长度间隔处插入指定字符串
	 * 
	 * @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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值