当前位置: 首页 > 知识库问答 >
问题:

如何在java中组合或合并两个字符串?[副本]

吕英才
2023-03-14

下面是我的代码,我希望输出为“afbgchde”,而不是“abcdefgh”,但最终会出现索引外错误,希望有更好的方法来实现这一点。。请帮忙。。!!

String str1 = "abcde";
//char[] a = str1.toCharArray();
//System.out.println(a);
String str2 = "fgh";
char[] b = str2.toCharArray();
//System.out.println(b);
int i,j=0;
try
    {
        for(i=0;i<str1.length();i++)
        {
          char c = str1.charAt(i);
          System.out.print(c);
          if(j==i)
          { 
            char d = str2.charAt(j);
            System.out.print(d);
            j++;
          }
        }
    }
catch(Exception e)
{
    System.out.println(e);
}

共有3个答案

冀弘厚
2023-03-14

可以让我们试试这个

String str1 = "abcde";
String str2 = "fgh";
int bigLength = str1.length()>str2.length()?str1.length():str2.length();

for(int i = 0; i<bigLength; i++){
if(i<str1.length())
   System.out.print(str1.charAt(i))
if(i<str2.length())
   System.out.print(str2.charAt(i))
}

希望这对你有用。

巫马泓
2023-03-14

为您的组合器完成代码。

public class StringCombiner {
public static void main(String[] args){
    System.out.println(combine("Hello", "World"));
    System.out.println(combine("He", "World"));
    System.out.println(combine("Hello", "Wo"));
}

    public static String combine(String str1, String str2){
        StringBuilder output = new StringBuilder();
        int i =0;
        for(; i< str1.length(); ++i){
            output.append(str1.charAt(i));
            if(i < str2.length()){
                output.append(str2.charAt(i));
            }
        }
        if(i < str2.length()){
            for(; i<str2.length(); ++i){
                output.append(str2.charAt(i));
            }
        }
        return output.toString();
    }
    }

输出:

HWeolrllod
HWeorld
HWeollo

希望这有帮助。

蓝恩
2023-03-14

简单:

 char d = str2.charAt(j);
 System.out.print(d);
 j++;

您正在访问第二个字符串中的字符;但是你永远不会费心去检查j是否仍然是

意思是:您的for循环为i包含该检查;并防止超出长度的str...所以你的合并只工作时str和str2碰巧有相同的大小。

因此,解决方案更像是:

 StringBuilder builder = new StringBuilder();
 int j = 0;
 for (int i=0; i < str.length(); i++) {
   builder.append(str.charAt(i));
   if (j < str2.length()) {
     builder.append(str2.charAt(j));  
     j++;
   }
 }
 // if str2 has more chars than str
 if (j < str2.length()) {
   // append ALL chars starting from index j
   builder.append(str2.substring(j));
 }
 String merged = builder.toString();

 类似资料:
  • 我在一秒钟内通过蓝牙从远程设备接收到两个字符串。(第一个字符串,然后在几毫秒后是第二个字符串)。例如: 和 我应该如何以及在哪里存储我的第一个字符串,等待下一个字符串,然后像头块一样组合这两个字符串?有什么建议吗。

  • 问题内容: 我最近开始使用Python,并且尝试将我的JSON字符串之一与现有JSON字符串连接在一起。我也在与Zookeeper一起工作,所以当我使用Python kazoo库时,我从zookeeper节点获取了现有的json字符串。 如果我打印,它会给我这样的感觉- 但是,如果我这样做,它会像这样打印出来- 这里将有我现有的JSON字符串。现在我有另一个键值对,我需要在出口添加- 以下是我的P

  • 我一直在为我的服务器做一个非常简单的bukkit插件,只是为了个人使用。我做了一个叫播放器的命令,当某人有权限(broadcaster.players)时,它会显示服务器播放器的列表。我还想让它在游戏中显示玩家的游戏模式。但是我不知道如何把它们放在一起。 我的代码: 如果它说,我想在同一行上显示游戏模式。 当然,这从来没有工作过,我不知道该怎么办,有人能给我建议我能做什么吗,我的代码很混乱,但我是

  • 本文向大家介绍如何在Java中使用JsonParserSequence顺序合并两个JSON字符串?,包括了如何在Java中使用JsonParserSequence顺序合并两个JSON字符串?的使用技巧和注意事项,需要的朋友参考一下 JsonParserSequence 是一个 可被用于创建包含两个子解析器放置在解析器辅助类 特定序列。我们可以创建一个使用序列静态 方法)createFlattene

  • 问题内容: 我有两个字节数组,我想知道如何将一个添加到另一个或组合它们以形成一个新的字节数组。 问题答案: 您只是想将两个数组连接起来? 或者您可以使用: 或者您可以使用a 来完成工作: 或者,您可以简单地利用添加多个数组的优势。

  • 问题内容: 我有两个数组。 我需要合并这些数组,并在下拉列表中显示为 我怎么能使用swift.im新手来快速获得此结果,有人可以帮忙吗? 问题答案: 压缩数组并连接结果: