一些简单的Java字符串练习题

1、字符串转化(压缩) “aabbccdaa” -> “a2b2c2d1a2”
函数原型:
public static String stringCompress(String str) {

}
思路:首先把原字符串由String类型转换为StringBuilder类型,
然后再调用StringBuilder类里面的一些方法将原字符串进行变换,
最后再返回String类型。

public class TestDemo1  {
    public static String stringCompress(String str) {
        StringBuilder p = new StringBuilder();
        p.append(str);
        p.replace(1,2,"2");
        p.replace(3,4,"2");
        p.replace(5,6,"2");
        p.insert(7,"1");
        p.replace(9,10,"2");
        return p.toString();
    }
    public static void main(String[] args) {
       String str = "aabbccdaa";
        System.out.println(stringCompress(str));
    }
}

结果如下
在这里插入图片描述
2、统计字符串中数字个数
//如:“abc21b416u” ===> 输出5
函数原型:
public static int isNumeric(String str){

}
思路:首先通过String类里面的charAt()方法字符串中每个位置的字符,
然后通过Character.isDigit()方法来判断得到的字符是否为数字并计数。

public class TestDemo1  {
    public static int isNumeric(String str){
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if (Character.isDigit(str.charAt(i))) {
                count++;
            }
        }
        return count;
    }
    public static void main(String[] args) {
       String str2 = "abc21b416u";
        System.out.println(isNumeric(str2));
    }
}

结果如下
在这里插入图片描述

3、题目:=====i am biter 逆置为:biter am i
函数原型:
public static String reverseSentence(String str) {

}
思路:(这个方法感觉都能把自己给蠢哭)先把原字符串分成三部分,
根据所想得到的结果,反复的使用reverse()方法进行反转。
(其中还需要不断的在String类和StringBuilder类之间进行类型切换)

public class TestDemo1  {
    public static String reverseSentence(String str) {
        String str1 = str.substring(0,2);
        String str2 = str.substring(2,4);
        String str3 = str.substring(5);
        StringBuilder p = new StringBuilder();
        StringBuilder q = new StringBuilder();
        p.append(str2);
        q.append(str3);
        StringBuilder x = p.reverse();
        StringBuilder y = q.reverse();
        String str4 = x.toString();
        String str5 = y.toString();
        String str6 = str1 + str4 + " " +str5;
        StringBuilder r = new StringBuilder();
        r.append(str6);
        return r.reverse().toString();
    }
    public static void main(String[] args) {
       String str = "i am biter";
        System.out.println(reverseSentence(str));
    }
}

结果如下
在这里插入图片描述
4、将一个数组从左开始第几位之前的进行旋转:左旋数组
如:将"abcdef"第2位之前(a为0号位置)进行旋转----》“cdefab”
函数原型:
public static void leftRotateString(String str,int n){

}
思路:通过String类中的substring()方法把原字符串分为两部分,然后再重新拼接即可。

public class TestDemo1  {
    public static void leftRotateString(String str,int n){
        String str1 = str.substring(0,n);
        String str2 = str.substring(n);
        System.out.println(str2+str1);
    }
    public static void main(String[] args) {
       String str = "abcdef";
       int n = 2;
        leftRotateString(str,n);
    }
}

结果如下
在这里插入图片描述

发布了49 篇原创文章 · 获赞 18 · 访问量 4373

猜你喜欢

转载自blog.csdn.net/asd0356/article/details/89252420
今日推荐