【发布时间】:2022-02-09 14:44:36
【问题描述】:
我想连接两个字符串,通过子串长度相同,连接应该像我下面提到的那样发生 假设, 我有 str1 = raines,str2 = bowls,LENGTH 为 2,那么我的输出应该是 raboinwless。
edit: 从最左边的字母开始,从str1和str2中识别出LENGTH个字母,并将识别出的字母分别添加到输出字符串中。重复此操作,直到 str1 或 str2 或两者的剩余字母少于 LENGTH。将 str1 中剩余的字母(如果有)添加到 str2 中的剩余字母(如果有)以输出字符串。
(str1 的前两个字母是 'ra',str2 的前两个字母是 'bo',连接它们得到 'rabo',在下一个循环中,接下来的两个字母是 str1 的 'in' 和 str2 的'wl',通过连接 we '会得到'inwl',现在总输出是'raboinwl',最后我们现在从str1得到'es',从str2得到's',总输出是'raboinwless')
import java.util.Scanner;
public class practice
{
//input str1 = raines
// str2 = bowls
// num = 2
//expected output = raboinwless
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String instr1 = input.nextLine();
String instr2 = input.nextLine();
int innum = input.nextInt();
String outstr="";
if(innum > instr1.length() || innum > instr2.length()) {
outstr = instr1+instr2;
System.out.println(outstr);
}else if(innum < instr1.length() || innum < instr2.length()) {
String[] chunks1 = instr1.split("(?<=\\G.{" + innum + "})");
String[] chunks2 = instr2.split("(?<=\\G.{" + innum + "})");
int itrCount = 0;
if(chunks1.length > chunks2.length)
itrCount = chunks1.length;
else itrCount = chunks2.length;
for(int i= 0 ; i< itrCount;i++) {
outstr = outstr+chunks1[i];
outstr = outstr+chunks2[i];
}
System.out.println(outstr);
}
}
}
- 如果我没有任何意义或我的提问方式不好,请评论或重新整理我的问题,
【问题讨论】:
-
我不知道其他任何人,但我发现“从 str1 和 str2 中取出提到的字符串长度并将它们组合起来,然后这样做,如果下一次迭代第一个字符串的长度或者第二个字符串不匹配,它可以将剩余的字符并执行连接”不可能跟随。我也看不出它如何与示例一起使用。
-
此外,如果您已经拥有工作代码,那么这不是一个适合提问的网站。您可以可能在codereview.stackexchange.com 上提问,但您需要让问题更加清晰。
-
不是免费的代码审查网站,如果您的代码有效,则不应将其发布在问答网站中
-
您的实际问题是什么?您的代码无法正常工作,或者您正在寻找一种更简洁的方式来实现任务?
-
我的代码正在运行,我想知道如何让它更干净。
标签: java