微型 练习

/**
 * http://bbs.csdn.net/topics/390787801?page=1#post-397391690
 * 给出一个任意字符串要求按照a^nb^n(n>=2)输出,n为字符重复次数,
 * 例如给一个字符串“aaabbbcc1234ddee”,输出为aaabbb,aabb,bbcc,ddee。
 * @author GT
 *
 */

public class AnBnTest {
	
	public static void main(String[] args) {
		String str = "aaabbbcc1234ddeeeeffffaaa";
		char[] chs = str.toCharArray();
		for(int i=0;i<chs.length-1;i++){
			if( chs[i] != chs[i+1] ){
				int low = i;
				int high = i+1;
				show(low,high,chs);
			}
		}
	}
	
	public static void show(int low,int high,char[] chs){
		if((low-1)>=0 && (high+1)<chs.length){
			if(chs[low-1] == chs[low] && chs[high+1] == chs[high]){
				System.out.println(String.valueOf(chs).substring(low-1, high+1+1));
				show(low-1,high+1,chs);
			}
		}
	}
	
}

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。

	public static int show(String str,int targetLength) throws Exception {
		char[] chs = str.toCharArray();
		int countLen = 0;
		int charLen = 0;
		for (int i = 0; i < chs.length; i++) {
			charLen = i;
			int len = String.valueOf(chs[i]).getBytes("GBK").length;
			countLen += len;
			if (countLen == targetLength) {
				break;
			} else if (countLen > targetLength) {
				charLen = charLen - 1;
				break;
			}
		}
		return charLen;
	}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值