Java基础---常用API(应用程序编程接口)一习题

1.模拟trim()方法,去除字符串中前后两端的空格

package com.day7;

public class Trim {
    public static void main(String[] args) {
        //1.模拟trim()方法,去除字符串中前后两端的空格
        String stringArrays = "  古来 圣贤 皆寂寞,惟有 饮者 留其名  ";
        String num = Trim.trimString(stringArrays);
        System.out.println(num);
    }

    public static String trimString(String stringArrays) {
        //先判断字符串是否为空
        if (stringArrays == null) {
            return null;
        }
        //定义一个开始索引
        int start = 0;
        //定义一个结束索引
        int end = stringArrays.length() - 1;
        //从第一个位置开始判断是否为空
        while (start <= end && stringArrays.charAt(start) == ' ') {
            start++;
        }
        //从最后一个位置判断是否为空
        while (end >= start && stringArrays.charAt(end) == ' ') {
            end--;
        }
        //调用substring方法,从start截取到end的字符,包前不包后
        return stringArrays.substring(start, end + 1);
    }
}

2.去除字符串中所有的空格

package com.day7;

public class DeleteTrim {
    public static void main(String[] args) {
        //2.去除字符串中所有的空格
        String stringArrays = " 古来 圣贤 皆寂寞,惟有 饮者 留其名 ";
        System.out.println("方法一:");
        DeleteTrim.deleteTrim1(stringArrays);
        System.out.println();
        System.out.println("方法二:");
        DeleteTrim.deleteTrim2(stringArrays);
    }

    //方法1
    public static void deleteTrim1(String stringArr) {
        char[] charArr = new char[stringArr.length()];
        for (int i = 0; i < stringArr.length(); i++) {
            if (stringArr.charAt(i) != ' ') {
                charArr[i] = stringArr.charAt(i);
                System.out.print( charArr[i]);
            }
        }
    }

    //方法2
    public static void deleteTrim2(String stringArr){
        StringBuffer stringBuffers = new StringBuffer();
        //把字符串转为char类型的数组
        char[] chars = stringArr.toCharArray();
        for (char c: chars) {
            if (!Character.isWhitespace(c)){
                stringBuffers.append(c);
            }
        }
        String newStringArr = stringBuffers.toString();
        System.out.println(newStringArr);
    }
}

3.字符串反转,abcd ----> dcba   

package com.day7;

import org.omg.CORBA.ARG_OUT;

public class Reversal {
    public static void main(String[] args) {
        //3.字符串反转,abcd ----> dcba   不准使用StringBuffer
        String num = "abcd";
        num.isEmpty();
        String strReversal = Reversal.stringReversal1(num);
        System.out.print("方法一:");
        System.out.println(strReversal);
        System.out.println("--------------------");
        System.out.print("方法二:");
        Reversal.stringReversal2(num);
        System.out.println("--------------------");
        System.out.print("方法三:");
        Reversal.stringReversal3(num);
    }

    //方法一:
    public static String stringReversal1(String strReversal) {
        String strSum = " ";
        for (int i = strReversal.length() - 1; i >= 0; i--) {
            strSum += strReversal.charAt(i);
        }
        return strSum;
    }

    //方法二
    public static void stringReversal2(String strReversal) {
        char[] chars = strReversal.toCharArray();
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = chars.length - 1; i >= 0; i--) {
            stringBuffer.append(chars[i]);
        }
        System.out.println(stringBuffer.toString());
    }

    //方法三
    public static void stringReversal3(String strReversal) {
        char[] chars = strReversal.toCharArray();
        int start = 0;
        int end = chars.length - 1;
        while (start < end) {
            char tmp = chars[start];
            chars[start] = chars[end];
            chars[end] = tmp;
            start++;
            end--;
        }
        System.out.println(new String(chars));
    }
}

4.获取一个字符串在另外一个字符串中出现的次数

package com.day7;

public class StringNum {
    public static void main(String[] args) {
        //4.获取一个字符串在另外一个字符串中出现的次数
        String num1 = "abcd";
        String num2 = "abcdabccdabcd";
        StringNum.getString(num1, num2);
    }

    public static void getString(String str1, String str2) {
        //先判断哪个字符串的长度更长
        String maxString = str1.length() > str2.length() ? str1 : str2;
        String minString = (maxString == str1) ? str2 : str1;
        int count = 0;
        int index = maxString.indexOf(minString);
        while (index != -1) {
            count++;
            index = maxString.indexOf(minString, index + 1);
        }
        System.out.println("次数为" + count);
    }
}

5.获取两个字符串中最大的相同子串

package com.day7;

public class MaxString {
    public static void main(String[] args) {
        //5.获取两个字符串中最大的相同子串
        String num1 = "abcd";
        String num2 = "abcdabccdabcd";
        MaxString.maxString(num1,num2);
    }

    public static void maxString(String str1, String str2) {
        //先判断哪个字符串的长度更长
        String maxString = str1.length() > str2.length() ? str1 : str2;
        String minString = (maxString == str1) ? str2 : str1;
        for (int i = 0; i < minString.length(); i++) {
            for (int j = 0, k = minString.length() - i; k != minString.length() + 1; j++, k--) {
                String temp = minString.substring(j, k);
                if (maxString.contains(temp)) {
                    System.out.println(temp);
                    return;
                }
            }
        }
        System.out.println("没有相同的子字符串");
    }
}

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些 Java 接口练习题,供您练习和巩固相关知识。以下是一些题目: 1. 定义一个接口 Animal,包含方法 eat() 和 sleep(),同时定义一个实现该接口的类 Dog 和 Cat。要求 Dog 和 Cat 实现 eat() 和 sleep() 方法,其中 eat() 方法输出 "I am a dog/cat, and I am eating",sleep() 方法输出 "I am a dog/cat, and I am sleeping"。 2. 定义一个接口 Shape,包含方法 getArea() 和 getPerimeter(),同时定义一个实现该接口的类 Rectangle 和 Circle。要求 Rectangle 和 Circle 实现 getArea() 和 getPerimeter() 方法,其中 getArea() 方法返回形状的面积,getPerimeter() 方法返回形状的周长。 3. 定义一个接口 Calculator,包含方法 add()、subtract()、multiply() 和 divide(),同时定义一个实现该接口的类 BasicCalculator 和 ScientificCalculator。要求 BasicCalculator 和 ScientificCalculator 实现 add()、subtract()、multiply() 和 divide() 方法,其中 BasicCalculator 实现的方法为简单的四则运算,ScientificCalculator 实现的方法为科学计算器常用的函数,例如 sin、cos、tan 等。 4. 定义一个接口 Sortable,包含方法 sort(),同时定义一个实现该接口的类 BubbleSort 和 QuickSort。要求 BubbleSort 和 QuickSort 实现 sort() 方法,其中 BubbleSort 实现冒泡排序,QuickSort 实现快速排序。 希望这些题目能够帮助您巩固 Java 接口的相关知识。如果您有任何问题或需要更多帮助,请随时告诉我。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值