练习题(好难的)

 

      1、字符串转化(压缩)  "aabbccdaa" -> "a2b2c2d1 a2"函数原型:

      public static String stringCompress(String str) {}

public class TestDemo {
    public static String stringCompress(String str1) {
        StringBuffer result = new StringBuffer();
        char ch = 0;//取第一个字符
        char c1 = str1.charAt(0);//连续字母的个数
        int count = 0;
        for (int i = 0; i < str1.length(); i++) {//循环取字符
            char c2 = str1.charAt(i);//把前一个字符和当前字符比较
            if (c1 == c2) {//相同的个数加一
                count++;
                continue;
            }//拼接
            result.append(count).append(c1);//当前字符变为前一字符
            c1 = c2;//个数清零
            count = 1;
        }//加上最后一个字符和个数
        result.append(count).append(c1);
        return result.toString();

    }

    public static void main(String[] args) {
        String str = new String("aabbbbccdeef");
        System.out.println(stringCompress(str));
    }
}



      2、统计字符串中数字个数

      //如: "abc21b416u"===>输出5函数原型:

      public static int isNumeric(String str){}

public class TestDemo2 {
    public static int isNumberic(String str) {
        int count = 0;
        char ch = 0;
        for (int i = 0; i < str.length(); i++) {
            ch = str.charAt(i);///获取str中的第i个字符
            if (ch >= '0' && ch <= '9') {//判断此字符是否在0-9之间
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        String str = new String();
        str = "6bo78mh84f5y9";
        System.out.println("字符串中数字的个数:" + isNumberic(str));

    }
}



      3、题目: =====i am biter逆置为: biteram i函数原型:

public class TestDemo4 {
    public static void reverse(char[] ch, int start, int end) {//倒置数组
        char tmp;
        tmp = ch[start];
        ch[start] = ch[end];
        ch[end] = tmp;
        start++;
        end--;
    }

    public static String reverseSentence(String str) {
        char[] array1 = str.toCharArray();
        String stringArray[]=str.split(" ");
        StringBuffer Str=new StringBuffer();
        int length=stringArray.length;
        for(int i=0;i<length;i++){
            Str.append(stringArray[length-i-1]+" ");//用StringBuffer将其逆转.
        }
        return Str.toString();//转换为String.

    }

    public static void main(String[] args) {
        String str = new String();
        str = "i am biter";
        System.out.println("逆转后为:" + reverseSentence(str));

    }
}



      4、将一个数组从左开始第几位之前的进行旋转:左旋数组 

      如:将"abcdef"第 2位之前(a为0号位置)进行旋转--->》"cdefab"函数原型: :

public class TestDemo5 {
    public static void leftRotateString(String str, int n) {
        char[] array1 = str.toCharArray();
        char[] arr1 = new char[array1.length]; 
        int i = 0;
        for (int j = n; j < array1.length; j++) {
            arr1[i] = array1[j];               
            i++;
        }
        for (int j = 0; j < n; j++) {       
            arr1[i] = array1[j];
            i++;
        }
        String str1 = new String(arr1);
        str=String.valueOf(array1);
        System.out.println(str1);
        }

    public static void main(String[] args) {
        String str = new String();
        str="abcdef";
        leftRotateString(str,2);


    }
}



      public static void leftRotateString(String str,int n){}

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值