Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符_Java_String_Loops_Java.util.scanner_Charat - Fatal编程技术网

Java 在从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符

Java 在从较短的字符串打印字符后,程序停止从两个字符串一次打印一个字符,java,string,loops,java.util.scanner,charat,Java,String,Loops,Java.util.scanner,Charat,我对这个代码有问题。否则它会完全按照标题所说的做,但是如果给定的字符串是“aa”和“bbbb”,它只打印“abab”,而应该打印“ababbb”。从较短字符串打印字符后,程序似乎停止。代码如下: publicstaticvoidmain(字符串[]args){ 扫描仪lukija=新扫描仪(System.in); 系统输出打印(“Anna merkkijono:”); 字符串merkkijono1=lukija.nextLine(); System.out.println(“Anna toine

我对这个代码有问题。否则它会完全按照标题所说的做,但是如果给定的字符串是“aa”和“bbbb”,它只打印“abab”,而应该打印“ababbb”。从较短字符串打印字符后,程序似乎停止。代码如下:

publicstaticvoidmain(字符串[]args){
扫描仪lukija=新扫描仪(System.in);
系统输出打印(“Anna merkkijono:”);
字符串merkkijono1=lukija.nextLine();
System.out.println(“Anna toinen merkkijono:”);
字符串merkkijono2=lukija.nextLine();
对于(int index=0;index索引){
系统输出打印(merkkijono1.charAt(索引));
if(merkkijono2.length()>索引){
系统输出打印(merkkijono2.charAt(索引));
}
}
}
}
}

所以我应该让它继续,即使字符是从较短的字符串打印出来的,有什么提示吗


另外,由于某些原因,其中一个括号不适合代码文本,我无法在不将整个代码文本弄得一团糟的情况下包含java.util.Scanner和public类,对此表示抱歉。

将第二个if语句移出第一个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));
    }
}
for(int index=0;index索引){
系统输出打印(merkkijono1.charAt(索引));
}
if(merkkijono2.length()>索引){
系统输出打印(merkkijono2.charAt(索引));
}
}

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));
            }
        }
    }

}
import java.util.Scanner;
公共课程1{
公共静态void main(字符串[]args){
扫描仪lukija=新扫描仪(System.in);
系统输出打印(“Anna merkkijono:”);
字符串merkkijono1=lukija.nextLine();
系统输出打印(“Anna toinen merkkijono:”);
字符串merkkijono2=lukija.nextLine();
对于(int i=0;ii){
系统输出打印(merkkijono1.charAt(i));
}
if(merkkijono2.length()>i){
系统输出打印(merkkijono2.charAt(i));
}
}
}
}

if语句不需要嵌套这两个
if语句。取消它们的测试,它会解决您的问题。