//本人小菜的解法:
import java.util.Scanner;
public class AdjustString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入a字符串:");
String astr = input.next();
System.out.println("请输入b字符串:");
String bstr = input.next();
boolean flag = equal(astr,bstr);
System.out.println(flag);
}
//定义一个方法:判断A与B是否相等
//返回布尔值
public static boolean equal(String astr,String bstr){
int count = 1;//定义旋转次数
loop:while(count <= astr.length()) {
astr = adjusta(astr);
if (!astr.equals(bstr)) {
count++;
continue loop;
}
else{
return true;
}
}
return false;
}
//定义一个方法:A 的旋转操作就是将A最左边的字符移动到最右边
//返回旋转后的字符串
//1.substring截取 2.把字符串变成数组,在把数组变成字符串
public static String adjusta(String string){
return string.substring(1) + string.charAt(0);
}
}
//大佬同学的方法
public static boolean equal(String astr,String bstr){
String aStr=astr+astr;
int len=astr.length();
for(int i=0;i<len;i++){
if(aStr.substring(i,i+len).equals(bstr)){
return true;
}
}
return false;
}
//这种类型的循环圆环一般是破环成链,abcd变成两倍等于abcdabcd,然后abcd,bcda,cdab,dabc这样每次长度为4循环去和b比较