调整字符串的内容并比较

给定两个字符串,A 和 B.

A 的旋转操作就是将 A 最左边的字符移动到最右边。

例如:若A =‘abcde',在移动一次之后结果就是’bcdea'.

如果在若干次调整操作之后,A能变成B,那么返回True,

如果不能匹配成功,则返回false

方法一:

/*
 * Copyright (c) 2017, 2023, zxy.cn All rights reserved.
 *
 */
package cn.stringbuilderdemo;

/**
 * <p>Description:调整字符串的内容并比较
 * 给定两个字符串,A和 B.
 * A的旋转操作就是将 A最左边的字符移动到最右边。
 * 例如:若A =‘abcde',在移动一次之后结果就是’bcdea'.
 * 如果在若干次调整操作之后,A能变成B,那么返回True,
 * 如果不能匹配成功,则返回false</p>
 * <p>Class:</p>
 * <p>Powered by zxy On 2023/6/10 9:01 </p>
 *
 * @author zxy [zxy06291@163.com]
 * @version 1.0
 * @since 17
 */
public class Test2Case1 {
    //方法一:
    public static void main(String[] args) {
        //1.定义两个字符串
        String strA = "abcde";
        String strB = "cdeab";
        //2.调用方法进行比较
        boolean result = check(strA, strB);

        //3.输出
        System.out.println(result);
    }
    public  static boolean check(String strA,String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if (strA.equals(strB)){
                return true;
            }
        }
        //所有的情况都比较完毕了,还不一样 那么直接返回false
        return false;
    }

    //作用:旋转字符串,把左侧的字符移动到右侧去
    //形参:旋转前的字符串
    //返回值:旋转后的字符串
    public static String rotate(String str){
        //套路:
        //如果我们看到要修改字符串的内容
        //可以有两个办法:
        //1.用subString 进行截取,把左边的字符截取出来拼接到右侧去
        //2.可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串。

        //截取思路
        //获取最左侧那个字符
        char first = str.charAt(0);
        //获取剩余的字符
        String end = str.substring(1);
        return end + first;
    }

}

方法二:

/*
 * Copyright (c) 2017, 2023, zxy.cn All rights reserved.
 *
 */
package cn.stringbuilderdemo;

/**
 * <p>Description:调整字符串的内容并比较
 * 给定两个字符串,A和 B.
 * A的旋转操作就是将 A最左边的字符移动到最右边。
 * 例如:若A =‘abcde',在移动一次之后结果就是’bcdea'.
 * 如果在若干次调整操作之后,A能变成B,那么返回True,
 * 如果不能匹配成功,则返回false</p>
 * <p>Class:</p>
 * <p>Powered by zxy On 2023/6/10 9:01 </p>
 *
 * @author zxy [zxy06291@163.com]
 * @version 1.0
 * @since 17
 */
public class Test2Case2 {
    //方法二:
    public static void main(String[] args) {
        //1.定义两个字符串
        String strA = "abcde";
        String strB = "cdeab";
        //2.调用方法进行比较
        boolean result = check(strA, strB);

        //3.输出
        System.out.println(result);
    }
    public  static boolean check(String strA,String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if (strA.equals(strB)){
                return true;
            }
        }
        //所有的情况都比较完毕了,还不一样 那么直接返回false
        return false;
    }

    //作用:旋转字符串,把左侧的字符移动到右侧去
    //形参:旋转前的字符串
    //返回值:旋转后的字符串
    public static String rotate(String str){
        //套路:
        //如果我们看到要修改字符串的内容
        //可以有两个办法:
        //1.用subString 进行截取,把左边的字符截取出来拼接到右侧去
        //2.可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串。

        //"abc"  ['a','b','c']   ['b','c','a']  new String(字符数组)
        char[] arr = str.toCharArray();
        //拿到0索引上的字符
        char first = arr[0];
        //把剩余的字符依次往前挪一个位置
        for (int i = 1; i < arr.length; i++) {
            arr[i-1] = arr[i];
        }
        //把原来0索引上的字符放到最后一个索引
        arr[arr.length - 1] = first;

        //利用字符数组创建一个字符串对象
        String result = new String(arr);
        return result;
    }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值