package com.test;
public class AdjustString {
//给两个 字符串 A,B
//A的若干次旋转操作后,可以变成B true
//反之,false
public static void main(String[] args) {
String strA = "abcde";
String strB = "cdeab";
//旋转字符串
strA = Rotate(strA);
//循环旋转再比较
boolean result = check(strA, strB);
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;
}
}
//所有的情况都比较完毕,还不一样
return false;
}
//旋转字符串
public static String Rotate(String str) {
//套路
//如果看到要修改字符串的内容
//可以有两个办法
//1.用subString进行截取,把右边的字符拼接到左边去
//2.可以把字符串先变成一个字符数组,然后调整字符数组里面的数据,最后把字符数组变成字符串
//法二
//把字符串变成字符数组
char[] chars = str.toCharArray();
//拿到0索引的字符
char first = chars[0];
for (int i = 1; i < chars.length; i++) {
chars[i - 1] = chars[i];
}
//把最后一个字符放到0索引
chars[chars.length - 1] = first;
String result= new String(chars);
return result;
//法一
//获取做左侧的字符
/* char first = str.charAt(0);
//截取右侧的字符
String end = str.substring(1);
return end + first;
*/
}
}