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

}
相关推荐
朝朝辞暮i2 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
leikooo3 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
言乐63 小时前
HTML视频审核模型
python·django·virtualenv·pygame·tornado
小师兄吃牛肉3 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记3 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐64 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779134 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
Ivanqhz4 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
kakakahahahaha4 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i4 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法