Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Lambda旋转字符串_Java_Java 8_Functional Programming - Fatal编程技术网

Java 使用Lambda旋转字符串

Java 使用Lambda旋转字符串,java,java-8,functional-programming,Java,Java 8,Functional Programming,所以我今天遇到了这个问题,但是因为我们得到了答案,我试着用lambda旋转它,我怀疑我的方法是使用反向字符串使用lambda旋转它,但是我希望得到关于如何处理这个问题的反馈。代码如下 我们得到两个字符串,A和B A上的移位包括获取字符串A并将最左边的字符移动到最右边的位置。例如,如果A='abcde',则在A上移动一次后,它将是'bcdea'。当且仅当A在A上移动若干次后可以变成B时,返回True 例1: 输入:A='abcde',B='cdeab' 输出:true 例2: 输入:A='abcd

所以我今天遇到了这个问题,但是因为我们得到了答案,我试着用lambda旋转它,我怀疑我的方法是使用反向字符串使用lambda旋转它,但是我希望得到关于如何处理这个问题的反馈。代码如下

我们得到两个字符串,A和B

A上的移位包括获取字符串A并将最左边的字符移动到最右边的位置。例如,如果A='abcde',则在A上移动一次后,它将是'bcdea'。当且仅当A在A上移动若干次后可以变成B时,返回True

例1: 输入:
A='abcde'
B='cdeab'
输出:
true

例2: 输入:
A='abcde'
B='abced'
输出:
false

我的界面:

public interface MyString {

    String myStringFunction(String str, String str1);

}
阶级

公共类轮换{
/**
*@param args
*/
公共静态字符串onRotateString(MyString rotateString、字符串A、字符串B){
返回rotateString.myStringFunction(A,B);
}
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
MyString旋转=(A,B)->{
字符串结果=”;

对于(int i=0;i,如果您只替换这一奇怪的行,它将产生更多的逻辑输出:

results += A.charAt((i+j) % A.length()) != B.charAt(i);


(我认为您从其上方的行复制粘贴了太多内容,您不需要签入附加到
结果的行)

根据旋转算法的性质,这里有另一个策略:

String a = "abcde";
String b = "cdeab";

boolean result = a.length() == b.length() && (a + a).contains(b);
如果两个字符串的长度相同,并且
b
a+a
的子字符串,则结果为真:

abcdeabcde
|||||
cdeab

非常感谢,所以我正在尝试:)
results += A.charAt((i + j) % A.length());
String a = "abcde";
String b = "cdeab";

boolean result = a.length() == b.length() && (a + a).contains(b);