为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套 for 循环在两个字符串之间进行迭代

嵌套 for 循环在两个字符串之间进行迭代

慕村9548890 2022-01-12 17:04:52
我想使用 for 循环遍历每个字符串并依次输出每个字符。String a = "apple";String b = "class";for (int i = 0;  i < a.length() ; i++) { // - 1 because 0 = 1    System.out.print(a.charAt(i));    for (int j = 0; j < b.length(); j ++) {        System.out.print(b.charAt(j));    }}我正在与内循环作斗争。目前我的输出如下:AClasspClasspClasslClasseClass但是,我想实现以下目标:acplpalses扩展问题:如何反向输出一个字符串而另一个正常输出?当前尝试:for (int i = a.length() - 1; i >= 0; i--) {    System.out.println(a.charAt(i));    for (int j = 0; j < b.length(); j ++) {        System.out.println(b.charAt(j));    }}然而,这只是像上面一样输出,只是“Apple”以与前面相同的格式以相反的顺序输出:eclasslclasspclasspclassaclass
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您不需要 2 个循环,因为您对两者都采用相同的索引 Strings


相同的顺序:


简单的同尺寸案例:


for (int i = 0; i < a.length(); i++) {

    System.out.print(a.charAt(i));

    System.out.print(b.charAt(i));

}

复杂的不同尺寸案例:


int minLength = Math.min(a.length(), b.length());

for (int i = 0; i < minLength; i++) {

    System.out.print(a.charAt(i));

    System.out.print(b.charAt(i));

}

System.out.print(a.substring(minLength)); // prints the remaining if 'a' is longer

System.out.print(b.substring(minLength)); // prints the remaining if 'b' is longer

不同的顺序:


简单的同尺寸案例:


for (int i = 0; i < a.length(); i++) {

    System.out.print(a.charAt(i));

    System.out.print(b.charAt(b.length() - i - 1));

}

复杂的不同尺寸案例:


int minLength = Math.min(a.length(), b.length());

for (int i = 0; i < minLength; i++) {

    System.out.print(a.charAt(i));

    System.out.print(b.charAt(b.length() - i - 1));

}

System.out.print(a.substring(minLength));

System.out.print(new StringBuilder(b).reverse().substring(minLength));


查看完整回答
反对 回复 2022-01-12
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

另一个使用 Java 8 流的解决方案:


System.out.println(

    IntStream.range(0, Math.min(a.length(), b.length()))

        .mapToObj(i -> "" + a.charAt(i) + b.charAt(i))

        .collect(Collectors.joining(""))

);


查看完整回答
反对 回复 2022-01-12
?
忽然笑

TA贡献1806条经验 获得超5个赞

对于扩展问题-假设两个字符串的大小相同


for (int i = 0; i < a.length(); i++) {

    System.out.print(a.charAt(a.length()-1-i));

    System.out.print(b.charAt(i));

}


查看完整回答
反对 回复 2022-01-12
  • 3 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信