我正在寻找一个Java程序,其结果如下。我卡在中间
[每个输出的长度基本上基于第二个数组的长度]3 这就是我所尝试的:我正在寻找一个Java程序,其结果如下。我卡在中间,java,arrays,logic,Java,Arrays,Logic,[每个输出的长度基本上基于第二个数组的长度]3 这就是我所尝试的: input: statement output: sta tat ate tem eme men ent 这是一个适合您的公正工作计划: 8 3 actiactiatiaiaa 由于我也是新手,无法提出澄清性问题,因此我假设所需的输出是以三个字符的增量进行,因为第一个数组中的第二个数组的长度不同。要获取数组的这些值,必须更改以下语句:for int j=i;j
input: statement
output: sta tat ate tem eme men ent
这是一个适合您的公正工作计划:
8
3
actiactiatiaiaa
由于我也是新手,无法提出澄清性问题,因此我假设所需的输出是以三个字符的增量进行,因为第一个数组中的第二个数组的长度不同。要获取数组的这些值,必须更改以下语句:for int j=i;j
package com.example;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("input: ");
String sourceString = scanner.next();
combinate(sourceString);
}
public static void combinate(String sourceString) {
String[] arr = sourceString.split("");
System.out.print("output: ");
for (int i = 0; i < sourceString.length() - 2; i++) {
System.out.print(arr[i] + arr[i + 1] + arr[i + 2] + " ");
}
}
}
// Result
// input: statement
// output: sta tat ate tem eme men ent
您的for循环不正确。应该是:
for (int j = i; j < array1.length-array2.length; j++)
{
System.out.print(array1[j]);
}
System.out.print(" ");
说明:
外部for循环从0到array1.length-array2.length,这是每个可能组合的起始索引。在您的示例中,它将从0循环到5
内部for循环从外部for循环的当前索引开始,并递增array2.length倍。我们打印出每个增量的字符,给出组合
每次组合完成后,内部循环都会打印出一个空格来分隔组合
如果打印出索引,它将如下所示:
act cti tia ian anc nce
第二个案例的预期输出是什么?请更改标题以反映实际问题。它现在没用了。然后解释你的代码有什么问题。基本上,我尝试使用上面的方法将子字符串与主字符串匹配。。。i、 e数组。很抱歉,我没有完成里面的几个循环…只是复制了我迄今为止所做的工作。如果我不知道问题是什么,我无法帮助您解决所有问题…我已经解决了主要问题。。但我把另一部分卡住了。我必须在没有找到匹配项的情况下打印这不是一个子字符串:在这里放置我的else的位置:code{char[]array1={'a','c','t','i','a','n','c','e'};string Str2=cti;对于int i=0;i
for(int i = 0; i <= array1.length - array2.length; i++) {
for(int j = i; j < i + array2.length; j++) {
System.out.print(array1[j]);
}
System.out.print(" ");
}
act cti tia ian anc nce
i = 0, j = 0, j = 1, j = 2
i = 1, j = 1, j = 2, j = 3
i = 2, j = 2, j = 3, j = 4
i = 3, j = 3, j = 4, j = 5
i = 4, j = 4, j = 5, j = 6
i = 5, j = 5, j = 6, j = 7