1

为什么这段代码在开始时打印了额外的一行,并且在接受 2 个字符串之后需要 0 到 2,即打印输出的 3 次迭代?

在此处输入图像描述

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for(int i=0;i<=n;i++)
        {   String s1="",s2="";
            String str;
            str= sc.nextLine();
            int l=str.length();
            for (int k=0;k<l;k++)
            {
                if (k%2==0)
                    s1=s1+str.charAt(k); 
                else if(k%2!=0)
                    s2=s2+str.charAt(k);
            }
            System.out.println(s1+" "+s2);
        }
    }
}
4

1 回答 1

0

我稍微调整了你的解决方案。它应该工作。

Scanner sc=new Scanner(System.in);
        int n=Integer.parseInt(sc.nextLine());
        for(int i=0;i<n;i++)
        {    String s1="",s2="";
            String str;
            str= sc.nextLine();
            int l=str.length();
            for (int k=0;k<l;k++)
            {
                if(k%2==0)
                    s1=s1+str.charAt(k);
                else if(k%2!=0)
                    s2=s2+str.charAt(k);
            }
            System.out.println(s1+" "+s2);
        }
        sc.close();

编辑:另外,您正在迭代 (n+1) 次

于 2020-07-26T10:55:29.700 回答