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

本文介绍了如何在Java中模拟trim()方法去除字符串两侧空格,两种删除字符串中所有空格的方法,字符串反转以及查找子串出现次数和获取最大相同子串的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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("没有相同的子字符串");
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值