从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符
Posted
技术标签:
【中文标题】从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符【英文标题】:Program stops printing one character at a time from two strings after the Characters are printed from the shorter string 【发布时间】:2017-06-25 07:31:01 【问题描述】:我对这段代码有疑问。否则它会完全按照标题所说的那样做,但是如果给定的字符串是“aa”和“bbbb”,它只会打印“abab”而不是应该打印“abbabbb”。从较短的字符串打印字符后,程序似乎停止了。代码如下:
public static void main(String[] args)
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.println("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++)
if (merkkijono1.length() > index)
System.out.print(merkkijono1.charAt(index));
if (merkkijono2.length() > index)
System.out.print(merkkijono2.charAt(index));
所以即使字符是从较短的字符串打印出来的,我也应该让它继续,有什么提示吗?
由于某种原因,其中一个括号不适合代码文本,我无法包含 java.util.Scanner 和公共类,而不会将整个代码文本变成一团糟,对此感到抱歉。
【问题讨论】:
不需要嵌套两个if
语句。取消嵌套它们,它应该可以解决您的问题。
【参考方案1】:
将第二个 if 语句移出第一个。
for (int index = 0; index < merkkijono1.length() || index < merkkijono2.length(); index++)
if (merkkijono1.length() > index)
System.out.print(merkkijono1.charAt(index));
if (merkkijono2.length() > index)
System.out.print(merkkijono2.charAt(index));
【讨论】:
【参考方案2】:似乎 if 语句在错误的循环中。 在这里,我对其进行了测试,并且可以正常工作。
import java.util.Scanner;
public class Program1
public static void main(String[] args)
Scanner lukija = new Scanner(System.in);
System.out.print("Anna merkkijono: ");
String merkkijono1 = lukija.nextLine();
System.out.print("Anna toinen merkkijono: ");
String merkkijono2 = lukija.nextLine();
for (int i = 0; i < merkkijono1.length() || i < merkkijono2.length(); i++)
if (merkkijono1.length() > i)
System.out.print(merkkijono1.charAt(i));
if (merkkijono2.length() > i)
System.out.print(merkkijono2.charAt(i));
【讨论】:
以上是关于从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符的主要内容,如果未能解决你的问题,请参考以下文章