首页 > 解决方案 > 为什么没有输出显示?在这里,我试图在交替位置显示两个字符串

问题描述

在下面的代码中,我试图在一个 char 数组中的备用位置打印两个字符串,其中第二个字符串应该以相反的顺序存储。例如:str1="happy" str2= "sadly" arr="hyalpdpays",其中两个字符串的大小应相同。

import java.util.*;

//*class Main declaration done here*
class Main{
public static void main (String args[])
{
    char[] arr=new char[100];  
    int flen=0;
    Scanner sc=new Scanner(System.in);
    String str1=sc.nextLine();
    String str2=sc.nextLine();
    if(str1.length()==str2.length())
    {
        flen = str1.length()+str2.length();
        for(int i=0, j=flen, k=0; i<(flen/2) && j>=0 && k<flen; i=i+2 , j=j-2, k++)
        {
            arr[k]=str1.charAt(i);
            k=k+1;
            arr[k]=str2.charAt(i);
        }
    }
    for(int i=0; i<flen; i++)
    {
        System.out.println(arr[i]);
    }
}
}

标签: javastringarraylist

解决方案


我对您的代码进行了一些更改,这对我来说很好

if(str1.length()==str2.length())
{
    flen = str1.length()+str2.length();
    int lastIndex = (str2.length()-1);
    for(int i=0, j=lastIndex, k=0; i<flen; j--, k++,i++)
    {
        arr[i]=str1.charAt(k);
        i++;
        arr[i]=str2.charAt(j);
     
    }
}
for(int i=0; i<flen; i++)
{
    System.out.print(arr[i]);
}

所以它将从字符串 1 的索引 0 开始,然后是字符串 2 的最后一个索引,依此类推。输出将是你提到的“hyalpdpays”。


推荐阅读