Java案例——反转比较

java 复制代码
package String;
public class Demo_14 {
    /**
     * 主函数执行字符串旋转比较的操作
     */
    public static void main(String[] args) {
        String A="abcde";
        String B="ABC";
       boolean result=check(A,B);
       System.out.println(result);
    }

    /**
      检查通过旋转字符串A是否能得到字符串B
     输入的第一个字符串
     需要比较的目标字符串
    如果通过旋转A可以得到B,则返回true;否则返回false
     */
    public static boolean check(String A,String B){
        // 遍历字符串A的每一位字符
        for (int i = 0; i < A.length(); i++) {
            // 调用r方法将字符串A进行一次旋转
            A=r(A);
            // 输出当前旋转后的字符串A,用于调试和理解
            System.out.println(A);
            // 如果旋转后的字符串A与字符串B相等,则返回true
            if(A.equals(B)){
                return true;
            }
        }
        // 如果所有旋转操作都不能使A变为B,则返回false
        return false;
    }

    /**
     * 旋转字符串,将字符串的第一个字符移动到末尾
     * str 需要旋转的字符串
     * 旋转后的字符串
     */
    public static String r(String str){
        // 获取字符串长度
        int len=str.length();
        // 获取并保存字符串的第一个字符
        char temp=str.charAt(0);
        // 将字符串的第一个字符移动到末尾,并返回新的字符串
        str=str.substring(1)+temp;
        return str;
    }

}

方法二:

java 复制代码
package String;

/**
 * Demo_14_case2 类用于演示字符串旋转比较的示例
 */
public class Demo_14_case2 {
    /**
     * 主函数执行字符串旋转比较操作
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        String A="abcde";
        String B="bcdea";
       boolean result=check(A,B);
       System.out.println(result);
    }

    /**
     * 检查通过旋转字符串A是否能得到字符串B
     * @param A 输入的第一个字符串
     * @param B 需要匹配的目标字符串
     * @return 如果通过旋转字符串A可以得到字符串B,则返回true;否则返回false
     */
    public static boolean check(String A,String B){
        // 遍历字符串A的每一位字符
        for (int i = 0; i < A.length(); i++) {
            // 对字符串A进行一次旋转操作
            A=r(A);
            // 如果旋转后的字符串A与字符串B相等,则返回true
            if(A.equals(B)){
                return true;
            }
        }
        // 如果经过所有旋转操作后,字符串A都无法与字符串B相等,则返回false
        return false;
    }

    /**
     * 旋转字符串,将字符串的第一个字符移动到末尾
     * @param str 需要旋转的字符串
     * @return 旋转后的字符串
     */
    public static String r(String str){
        char[] arr=str.toCharArray();
        char first=arr[0];
        // 将字符串的第一个字符移动到最后一个位置,其他字符向前移动一位
        for (int i = 1; i < str.length(); i++) {
            arr[i-1]=arr[i];
        }
        arr[arr.length-1]=first;
        String result=new String(arr);
        return result;
    }

}
相关推荐
狂小虎4 分钟前
亲测解决self.transform is not exist
python·深度学习
Python智慧行囊5 分钟前
Python 中 Django 中间件:原理、方法与实战应用
python·中间件·架构·django·开发
HelloWord~12 分钟前
SpringSecurity+vue通用权限系统2
java·vue.js
让我上个超影吧13 分钟前
黑马点评【基于redis实现共享session登录】
java·redis
深科文库14 分钟前
构建 MCP 服务器:第 3 部分 — 添加提示
服务器·python·chatgpt·langchain·prompt·aigc·agi
CodeWithMe28 分钟前
【C/C++】namespace + macro混用场景
c语言·开发语言·c++
蓝婷儿36 分钟前
6个月Python学习计划 Day 17 - 继承、多态与魔术方法
开发语言·python·学习
Mikhail_G1 小时前
Python应用变量与数据类型
大数据·运维·开发语言·python·数据分析
BillKu1 小时前
Java + Spring Boot + Mybatis 插入数据后,获取自增 id 的方法
java·tomcat·mybatis