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_String - Fatal编程技术网

Java 简单字符串程序,但输出错误,没有运行时错误

Java 简单字符串程序,但输出错误,没有运行时错误,java,string,Java,String,我正在解决HackerRank的一个问题 任务: public class Solution { public static void main(String[] args) { /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ Scanner sc = new Scanner(System.in);

我正在解决HackerRank的一个问题

任务:

public class Solution {

public static void main(String[] args) {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    sc.nextLine();
    for(int i=0; i<=n; i++){
        String str = sc.nextLine();
        for(int j = 0; j< str.length() ; j++){
            if(j%2 ==0){
                System.out.print(str.charAt(j));
            }                
        }
        System.out.print(" ");
        for(int j = 0; j< str.length() ; j++){
            if(j%2==1 ){
                System.out.print(str.charAt(j));
            }
        }
        System.out.println();
    }
}
给定长度为N、索引范围为0到N-1的字符串S,将其偶数索引字符和奇数索引字符作为两个空格分隔的字符串打印在一行上(有关详细信息,请参见下面的示例)

输入格式

第一行包含一个整数T(测试用例的数量)。 T个后续行中的每一行i都包含一个字符串S

输出格式

对于每个字符串Sj(其中),打印Sj的偶数索引字符,后跟一个空格,后跟Sj的奇数索引字符

样本输入

二,

黑客

等级

样本输出

Hce-akr

Rn ak

以下是我编写的代码:

public class Solution {

public static void main(String[] args) {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    sc.nextLine();
    for(int i=0; i<=n; i++){
        String str = sc.nextLine();
        for(int j = 0; j< str.length() ; j++){
            if(j%2 ==0){
                System.out.print(str.charAt(j));
            }                
        }
        System.out.print(" ");
        for(int j = 0; j< str.length() ; j++){
            if(j%2==1 ){
                System.out.print(str.charAt(j));
            }
        }
        System.out.println();
    }
}
公共类解决方案{
公共静态void main(字符串[]args){
/*在此处输入代码。从STDIN读取输入。将输出打印到STDOUT。您的类应命名为Solution*/
扫描仪sc=新的扫描仪(System.in);
int n=sc.nextInt();
sc.nextLine();

对于(int i=0;i我认为期望是一次性获取所有输入。 意思是,一旦给出字数,阅读所有单词,然后打印输出。由于问题不清楚,我是根据我的假设回答的。

问题不是:

_______________//跳过第一行,但如果我对系统进行注释

.out.println在循环末尾,则两个字符串位于同一行上

,但:

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

for(int i=0;i我在您的代码中发现了一些错误,这些错误可能是失败的原因:


对于(int i=0;i)您是否尝试过在调试器中运行代码?任务规范中似乎缺少一大堆单词。请尝试编写有意义的内容。您可以尝试更改"我已经编辑过它。请现在检查。我已经尝试过了,但输出没有变化。取而代之的是,它需要N-1个测试用例EAH,但为此,我需要使用字符串数组作为输入。我想只使用字符串来解决这个问题。我的问题很简单:如果我的程序中有任何运行时错误,它是什么。为什么它在第一次尝试时退出循环?我已经尝试过了d根据您的解决方案更改循环,但得到相同的错误。以下是更改循环后的输出:2 Hacker Rank your output(标准输出)Hce akr预期输出Hce akr Rn ak编译器消息回答错误…然后(最新问题是)您可能会修改(与原始帖子相比)…您谈到过“正在跳过
System.out.print
…?。请同时复制并粘贴我刚才跳过的内容,因为您可以看到我们是否正在放入System.out.println()在循环结束时,我在输出中得到了额外的一行,但当我跳过它时,我的程序工作正常,但由于我的输出之间没有换行符,所以两者都粘在一起,并且是这样的:hce akrRn ak。你看,这是我的主要问题。我希望以特定的行获得输出。你的代码工作正常,没有问题。但是但是有一个问题,我们必须使用列表来编程吗?我还想知道为什么我的程序在第一次尝试时会跳出循环。我的意思是循环应该一直持续到到达N为止。@user26837:正如我上面解释的,你从来没有跳出过循环,也就是在每次输入之后,你的输出都在下一行,没有等待完成整个输入周期,这就是李的原因st出现在图片中,它将保存所有输出值,直到所有输入都完成。好的,我接受你们的答案。但请回答这个问题:当我放置System.out.println()时在循环结束时,我在输出中得到了额外的一行,但当我跳过它时,我的程序运行良好,但由于我的输出之间没有换行符,所以两者都粘在一起,并且是这样的:hce akrRn ak。你看,这是我的主要问题。我想在单独的行中获得输出。我已经在上面问过这个问题。唯一的一行当您输入最后一个单词,即“Rank”时,代码出现意外中断。一旦完成,输出应以Rn ak结束,但您的代码将以额外的换行符结束,这是系统意外的。这是您一直在问的问题吗?不,我首先问的是,为什么在我的输出中我得到输出“hce akr”在一行之后,即使程序是连续的,我也不会在输出中声明任何额外的行。第二个问题就像我在循环的末尾给出了一个“println”,所以我跳过它。我的程序工作正常,但输出之间的间隔和行不会出现。
...
for(int j = 0; j<str.length() ; j+=2){//!!
    // no if!
    System.out.print(str.charAt(j));
}
System.out.print(" ");
for(int j = 1; j< str.length() ; j+=2){//!!
    //no if!       
    System.out.print(str.charAt(j));
}
...
2
Hacker
Hce akr
Rank
Rn ak
public class Solution {
public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<String> list = new ArrayList<String>();
        sc.nextLine();
        for(int i=0; i< n; i++){
            String str = sc.nextLine();
            String s1 ="";
            for(int j = 0; j< str.length() ; j++){
                if(j%2 ==0){
                    s1 = s1 + str.charAt(j);
                }                
            }
            s1 = s1 + " ";
            for(int j = 0; j< str.length() ; j++){
                if(j%2==1 ){
                    s1 = s1 + str.charAt(j);
                }
            }
            list.add(s1);
        }
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}