如何将数组中的 2 个单词添加到另一个数组中的字符串

Posted

技术标签:

【中文标题】如何将数组中的 2 个单词添加到另一个数组中的字符串【英文标题】:How to add 2 words from an array to a string from another array 【发布时间】:2022-01-14 20:04:24 【问题描述】:

我正在为学校编写一个疯狂的 lib 程序。该程序必须有 30 个句子,每个句子中缺少两个单词。我计划将句子存储在一个数组中,将用户输入的单词存储在第二个数组中,然后将单词数组中的单词添加到句子数组中的句子中。当使用 for 循环执行此操作时,它适用于第一句,但在之后的每个句子中都使用相同的单词。

这是我这部分的代码:

String story[] = "Once upon a time, there was a _ man named _.", "He loved playing _ on _ afternoons.";

String words[] = "awesome", "James", "checkers", "Sunday";

for (int i = 0; i < story.length; i++)  
    for (int j = 0; j < words.length; j++)  
        story[i] = story[i].replaceFirst(placeholder, words[j]); // placeholder is set to '_'
    
System.out.println(story[i]); 

【问题讨论】:

发生这种情况,因为在您的循环逻辑中,您可以看到在每次迭代之后,您将 j 的值重置为 0。我可以帮助您解决问题,但我不能在问题中看到预期的输出,所以这就是我能提供的全部。 在两个 for 循环之间移动 int j=0 谢谢萨姆里德!!!在令人沮丧的时刻,最简单的事情总是让我心烦意乱。再次感谢您! 【参考方案1】:

这应该可以工作

    String story[] = "Once upon a time, there was a _ man named _.", "He loved playing _ on _ afternoons.";
    String words[] = "awesome", "James", "checkers", "Sunday";
    int j=0;
    for (int i = 0; i < story.length; i++) 
        while(story[i].contains("_"))
            story[i] = story[i].replaceFirst("_", words[j++]);
        
        System.out.println(story[i]);
    

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

根据您的情况,words 数组将包含比 story 数组多 x2 个元素。我们可以用它来写一个简单的算法:

String story[] = "Once upon a time, there was a _ man named _.", "He loved playing _ on _ afternoons.";
String words[] = "awesome", "James", "checkers", "Sunday";
String placeholder = "_";
for (int i = 0; i < story.length; i++) 
    String word1 = words[i * 2];
    String word2 = words[i * 2 + 1];
    story[i] = story[i]
            .replaceFirst(placeholder, word1)
            .replaceFirst(placeholder, word2);

    System.out.println(story[i]);

【讨论】:

【参考方案3】:

如果你真的用这种方式解决它,这将起作用:

for (int i = 0; i < story.length; i++)  
    for (int j = i*2; j < (i*2)+1; j++)  
        story[i] = story[i].replaceFirst(placeholder, words[j]); // placeholder is set to '_'
    
    System.out.println(story[i]); 

【讨论】:

以上是关于如何将数组中的 2 个单词添加到另一个数组中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

将新属性添加到另一个数组中的现有对象数组

如何在javascript中将一个数组中的值添加到另一个数组

使用 jQuery 在字符串中的每个单词前添加一个“+”

存储动态字符串

如何将字符串(单词)添加到字符串 [] 数组?Java,输入 [重复]

如何在按钮之间平均分割字符串的字符?