Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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_Arrays_String_Indexoutofboundsexception - Fatal编程技术网

Java 摩根和一根绳子

Java 摩根和一根绳子,java,arrays,string,indexoutofboundsexception,Java,Arrays,String,Indexoutofboundsexception,我试图解决这个问题: 这是我的密码: import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = In

我试图解决这个问题:

这是我的密码:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution 
{

   public static void main(String[] args) 
  {
   Scanner sc = new Scanner(System.in);
   int t = Integer.parseInt(sc.nextLine());
    while((t--)>0)
    {
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();
        System.out.println(ms(s1,s2));
    }
  }

 public static String ms(String s1, String s2)
 {
     StringBuffer sb = new StringBuffer();
     int i,j;
     for(i=0,j=0;i<s1.length() || j<s2.length() ;)
     {
        if(s1.charAt(i)>s2.charAt(j))
            {
                sb.append(s2.charAt(j));
                if(j==s2.length())
                    break;
                else
                    j++;
            }
        else
            {
                sb.append(s1.charAt(i));
                if(i==s1.length())
                    break;
                else
                    i++;
            }
     }

     if(j==s2.length())
     {  
     for(;i<s1.length();i++)
            sb.append(s1.charAt(i));

     return sb.toString();
     }

     else
     {
     for(;j<s2.length();j++)
            sb.append(s2.charAt(j));

      return sb.toString();
      }
   }   
 }

谁能告诉我哪里出了问题?我找不到错误…

我不知道您正在尝试使用该程序,但我认为这将消除您的错误

for(i=0,j=0;i<s1.length() & j<s2.length() ;)

for(i=0,j=0;i我刚刚修改了for循环,如下所示,我可以在没有任何问题的情况下执行程序

for(i = 0, j = 0; i < s1.length() && j < s2.length();)
for(i=0,j=0;i
PFB的源代码

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int t = Integer.parseInt(sc.nextLine());
    while ((t--) > 0) {
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();
        System.out.println(ms(s1, s2));
    }
}

public static String ms(String s1, String s2) {
    StringBuffer sb = new StringBuffer();
    int i, j;
    for (i = 0, j = 0; i < s1.length() && j < s2.length();) {
        if (s1.charAt(i) > s2.charAt(j)) {
            sb.append(s2.charAt(j));
            if (j == s2.length())
                break;
            else
                j++;
        } else {
            sb.append(s1.charAt(i));
            if (i == s1.length())
                break;
            else
                i++;
        }
    }

    if (j == s2.length()) {
        for (; i < s1.length(); i++)
            sb.append(s1.charAt(i));

        return sb.toString();
    }

    else {
        for (; j < s2.length(); j++)
            sb.append(s2.charAt(j));

        return sb.toString();
    }
}
}
import java.util.Scanner;
公开课考试{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int t=Integer.parseInt(sc.nextLine());
而((t--)>0){
字符串s1=sc.nextLine();
字符串s2=sc.nextLine();
系统输出println(ms(s1,s2));
}
}
公共静态字符串ms(字符串s1、字符串s2){
StringBuffer sb=新的StringBuffer();
int i,j;
对于(i=0,j=0;is2.字符(j)){
sb.追加(s2.字符(j));
如果(j==s2.length())
打破
其他的
j++;
}否则{
sb.追加(s1.字符(i));
如果(i==s1.length())
打破
其他的
i++;
}
}
如果(j==s2.length()){
对于(;i
Well
iSide注意:这些问题通常可以通过在调试器中运行程序来解决;或者(不太“推荐”:通过为每个重要语句插入跟踪语句来解决。)
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int t = Integer.parseInt(sc.nextLine());
    while ((t--) > 0) {
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();
        System.out.println(ms(s1, s2));
    }
}

public static String ms(String s1, String s2) {
    StringBuffer sb = new StringBuffer();
    int i, j;
    for (i = 0, j = 0; i < s1.length() && j < s2.length();) {
        if (s1.charAt(i) > s2.charAt(j)) {
            sb.append(s2.charAt(j));
            if (j == s2.length())
                break;
            else
                j++;
        } else {
            sb.append(s1.charAt(i));
            if (i == s1.length())
                break;
            else
                i++;
        }
    }

    if (j == s2.length()) {
        for (; i < s1.length(); i++)
            sb.append(s1.charAt(i));

        return sb.toString();
    }

    else {
        for (; j < s2.length(); j++)
            sb.append(s2.charAt(j));

        return sb.toString();
    }
}
}