用Java写出完整代码满足下面要求:对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。
时间: 2023-12-30 12:06:05 浏览: 77
JAVA 字符串 操作
下面是完整的Java代码实现:
```java
public class SubstringInRotatedString {
public static void main(String[] args) {
String s1 = "AABCD";
String s2 = "CDAA";
boolean isSubstring = isSubstring(s1, s2);
System.out.println(isSubstring); // 输出true
s1 = "ABCD";
s2 = "ACBD";
isSubstring = isSubstring(s1, s2);
System.out.println(isSubstring); // 输出false
}
public static boolean isSubstring(String s1, String s2) {
if(s1 == null || s2 == null || s1.length() != s2.length()) {
return false;
}
String s = s1 + s1; // 将s1重复一次,得到一个新的字符串
return s.indexOf(s2) != -1; // 判断s2是否为s1的移位包含
}
}
```
这个代码首先定义了一个`isSubstring()`函数,用于判断s2是否为s1通过若干次循环移位后的新字符串的子串。然后在`main()`函数中调用这个函数进行测试。测试结果符合预期。
阅读全文