描述:
该程序判断字符串strA是否可以通过循环旋转得到字符串strB。首先,对strA进行循环旋转,每次旋转通过调用rotate()方法实现。rotate()方法使用substring()方法将字符串strA的首字符移到末尾,然后返回旋转后的字符串。如果在循环中找到了旋转后的strA与strB相等的情况,则将flag标记为true。最后,根据flag的值输出结果。该程序中的rotate()方法使用了substring()方法实现字符串的旋转。
package StringBuilder;
public class Demo6 {
public static void main(String[] args) {
String strA = "abcde";
String strB = "deabc";
boolean flag = false;
for (int i = 0; i < strA.length(); i++) {
strA = rotate(strA);
if (strB.equals(strA)) {
flag = true;
}
}
if (flag) {
System.out.println(true);
} else {
System.out.println(false);
}
}
//方法一:
public static String rotate(String strA) {
//由于字符串无法进行更改,所以下面代码是错的
// String s = "";
// for (int i = 0; i < strA.length(); i++) {
// if (i != strA.length() - 1) {
// s.charAt(i) = strA.charAt(i + 1);
// }
// }
//如果看到要修改字符串内容
//两个办法
//1.用substring进行截取,将左边的字符串截取出来拼接到右边去
//2.可以将字符串先变成一个字符数组,然后调整字符数组里面的数据,最后再把字符数组变成字符串(在demo7里面)
String s1 = strA.substring(0, 1);
String s2 = strA.substring(1);
String s3 = s2 + s1;
return s3;
}
//方法二
//public static String rotate(String s) {
//char[] arr = s.toCharArray();
//char temp = arr[0];
//for (int i = 1; i < arr.length; i++) {
// arr[i - 1] = arr[i];
//}
//arr[arr.length - 1] = temp;
//String result = new String(arr);
//return result;
//}
}