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

}
相关推荐
做怪小疯子2 小时前
华为笔试0429
python·numpy
Warson_L3 小时前
Dictionary
python
JAVA面经实录9173 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
周杰伦fans4 小时前
AutoCAD .NET 二次开发:深入理解 EntityJig 的工作原理与正确实现
开发语言·.net
许彰午5 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
寒山李白5 小时前
解决 python-docx 生成的 Word 文档打开时弹出“无法读取内容“警告
python·word·wps·文档·docx·qoder
2401_832365525 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z5 小时前
第J3周:DenseNet121算法详解
python
Bat U6 小时前
JavaEE|多线程初阶(七)
java·开发语言
谭欣辰6 小时前
C++ 排列组合完整指南
开发语言·c++·算法