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

}
相关推荐
清水白石0082 小时前
Python 编程实战全景:从基础语法到插件架构、异步性能与工程最佳实践
开发语言·python·架构
yaoxin5211233 小时前
390. Java IO API - WatchDir 示例
java·前端·python
武帝为此3 小时前
【数据清洗缺失值处理】
python·算法·数学建模
zhangchaoxies4 小时前
如何在 Go 中安全复制接口指针所指向的值
jvm·数据库·python
曲幽4 小时前
FastAPI + Pydantic 模型终极实战手册:从能跑就行到固若金汤,这些技巧你一定用得上
python·fastapi·web·model·field·pydantic·validator·basemodel
Halo_tjn4 小时前
Java 基于字符串相关知识点
java·开发语言·算法
梦想的颜色4 小时前
java 利用redis来限制用户频繁点击
java·开发语言
报错小能手4 小时前
Swift 并发 Combine响应式框架
开发语言·ios·swift
计算机软件程序设计5 小时前
Python Flask工程目录解读
python·flask·工程目录解读
Ares-Wang5 小时前
Flask》》 Flask-OpenID 认证、 OpenID Connect (OIDC)
后端·python·flask