调整字符串
需求:给定两个字符串,A和B
A=‘abcde’旋转一次为‘bcdea’
如果在若干次调整操作之后,A能变成B,则返回True
public class test6 {
public static void main(String[] args) {
// 调整字符串
// 需求:给定两个字符串,A和B
// A=‘abcde’旋转一次为‘bcdea’
// 如果在若干次调整操作之后,A能变成B,则返回True
String str1 = "abcde";
String str2 = "cdeab";
boolean flag = false;
// 循环旋转并比较
for (int i = 0; i < str1.length(); i++) {
str1 = revolve(str1);
System.out.println(str1);
if (str1.equals(str2)) {
flag = true;
break;
}
}
System.out.println(flag);
}
// 方法一
// 字符串旋转一次
// public static String revolve(String str){
// StringBuilder sb = new StringBuilder();
// // 从第二位开始添加进新字符串中
// for (int i = 1; i < str.length(); i++) {
// char c = str.charAt(i);
// sb.append(c);
// }
// // 将最左侧字符串添加到新字符串末尾
// sb.append(str.charAt(0));
// return sb.toString();
// }
// 方法二
// 字符串旋转一次
// public static String revolve(String str){
// // 获取最左侧字符
// char first = str.charAt(0);
// // 获取剩余字符
// String end = str.substring(1);
// return end+first;
// }
// 方法三
// 字符串旋转一次
public static String revolve(String str) {
char[] arr = str.toCharArray();
// 获取最左侧字符
char first = arr[0];
// 把剩余字符依次往前挪一个位置
for (int i = 1; i < arr.length; i++) {
arr[i - 1] = arr[i];
}
arr[arr.length-1] = first;
String result = new String();
return result;
}
}
更多推荐
java旋转字符串比较(内含三种方法)
发布评论