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;
    }

}
相关推荐
于先生吖1 分钟前
前后端分离开发 Java 跑腿系统:用户 + 骑手 + 后台三端实战
java·开发语言
野犬寒鸦1 分钟前
从零起步学习JVM|| 第二章:JVM基本组成及JVM内存区域详解
服务器·开发语言·后端·学习·面试·职场和发展
云烟成雨TD2 分钟前
Spring AI Alibaba 1.x 系列【2】架构、特性与生产级演示案例
java·人工智能·spring
iPadiPhone3 分钟前
Java NIO 核心原理解析、性能调优与大厂面试精要
java·后端·面试·nio
2401_891482173 分钟前
C++中的原型模式
开发语言·c++·算法
皙然4 分钟前
深度解析三色标记算法:JVM 并发 GC 的核心底层逻辑
java·jvm·算法
大写的老王4 分钟前
OpenClaw 部署实战:一周完成 PHP 到 Java 的项目迁移
java·php·ai编程
1941s4 分钟前
Google Agent Development Kit (ADK) 指南 第三章:核心概念与架构
人工智能·python·langchain·agent·adk
史蒂芬_丁6 分钟前
C++静态变量管理实例
开发语言·c++
木子欢儿7 分钟前
在 Debian 12 上安装多个版本的 php(7.3、7.4、8.1、8.2)
运维·开发语言·debian·php