Java 通过旋转元素生成字符串

Java 通过旋转元素生成字符串,java,string,algorithm,Java,String,Algorithm,我正在尝试开发一种算法,它接收输入字符串S,并通过一次消除两个字符来生成字符串。这是到目前为止我的代码 String[] strings = {"a", "b", "c", "d", "e", "f"}; int charsToBeRemoved = strings.length - 2; for( int i = 0; i < strings.length; i++ ) { int counter = 1; StringJ

我正在尝试开发一种算法,它接收输入字符串
S
,并通过一次消除两个字符来生成字符串。这是到目前为止我的代码

    String[] strings = {"a", "b", "c", "d", "e", "f"};
    int charsToBeRemoved = strings.length - 2;

    for( int i = 0; i < strings.length; i++ )
    {
        int counter = 1;
        StringJoiner p = new StringJoiner( "|" );
        p.add( strings[i] );
        for( int j = i + 1; j < strings.length; j++ )
        {
            p.add( strings[j] );
            counter += 1;
            if( counter == charsToBeRemoved )
            {
                counter = 1;
                j = ( charsToBeRemoved - 2 ) > 0 ? j - ( charsToBeRemoved - 2 ) : j;
                regexList.add( p.toString() );
                p = new StringJoiner( "|" );
                p.add( strings[i] );
            }
        }
    }
String[]strings={“a”、“b”、“c”、“d”、“e”、“f”};
int charsToBeRemoved=strings.length-2;
for(int i=0;i0?j-(charsToBeRemoved-2):j;
add(p.toString());
p=新的细木工(“|”);
p、 添加(字符串[i]);
}
}
}
这提供了输出:
[a | b | c | d,a | c | d | e | f,b | c | d | e,b | d | e | f,c | d | e | f]
。然而,我试图得到的是一个基于旋转阵列的解决方案。“代码”等<代码>[某件事如<代码>[某件事如<代码>[a?b?b?b?b?b?b|b?b?b)c c c c c c c c c c c c c c c c c c c(124<<<<<<<<<<<代码<<<<代码<<代码<<<<代码<代码<代码<<代码)c c<<<<<<<<<<<<<<代码<代码<<<<<<代码<<<<<<<<代码<<<代码<代码。在我当前的代码中,这些输出
b | e | f | a、c | e | f | a、c | f | a、d | f | a、d | a | b | c
没有形成,因为我需要一种方法来访问数组的先前元素

有人能建议这样做的方法吗?或者我应该如何改变我的方法?

要“环绕”到数组的开头,您需要使用
%
mod运算符

String[] strings = { "a", "b", "c", "d", "e", "f" };
int reduction = 2;

for(int i=0; i<strings.length; i++)
{
    for(int j=0; j<=reduction; j++)
    {
        StringJoiner p = new StringJoiner("|");
        p.add(strings[i]);
        for(int k=1; k<strings.length-reduction; k++)
            p.add(strings[(i + j + k) % strings.length]);
        System.out.println(p);
    }
}

你们的预期产出只是你们的预期产出只是你们的预期产出只是[a?b?b?b?b?b?b?b| b| b?c| C124你们的预期产出是你们的预期产出只是你们的预期产出只是[A124你们的“b”b B124你们的C124你们的预期产出是你们的“c C124你们的b”C124你们的预期产出是你们的预期产出是你们的“c c C124你们的“B124124你们的C124124你们的b b b b”c c C124124124你们的预期产出只是只是[124你们的“c c c C124你们的预期产出是你们的c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c是的,我的错,它也应该继续
d
值。我已经编辑了这个问题。
a|b|c|d
a|c|d|e
a|d|e|f
b|c|d|e
b|d|e|f
b|e|f|a
c|d|e|f
c|e|f|a
c|f|a|b
d|e|f|a
d|f|a|b
d|a|b|c
e|f|a|b
e|a|b|c
e|b|c|d
f|a|b|c
f|b|c|d
f|c|d|e