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

两种不同输入的交替字符

周正真
2023-03-14

我想采取两个字符串和交替的字符到一个新的字符串使用for方法。

例如:“两个”和“一个”

结果:“townoe”

这就是我到目前为止所拥有的,我真的不知道如何完成它。

public class Alternator {   
    String alternate(String a, String b) {
        String s = "";
        for (int i = 0; i < a.length(); i++) {
            s += i;
            System.out.println(s);
        }
        return null;
    }
}

共有3个答案

司寇烨伟
2023-03-14

这将工作,如果字符串是相同的长度或不同的长度。

static void mergeStrings(String a, String b) {
    StringBuilder mergedBuilder = new StringBuilder();
    char[] aCharArr = a.toCharArray();
    char[] bCharArr = b.toCharArray();

    int minLength = aCharArr.length >= bCharArr.length ? bCharArr.length : aCharArr.length;

    for (int i=0; i<minLength; i++) {
        mergedBuilder.append(aCharArr[i]).append(bCharArr[i]);
    }

    if(minLength < aCharArr.length) {
        mergedBuilder.append(a.substring(minLength));
    }
    else{
        mergedBuilder.append(b.substring(minLength));
    }
    Systemout.println(mergedBuilder.toString());
}
洪光霁
2023-03-14

这里有一些紧凑的方法来做到这一点:

String alternate(String a, String b) {
    StringBuilder builder = new StringBuilder();

    int smallerStringLength = Math.min(a.length(), b.length());
    for (int i = 0; i < smallerStringLength; i++) {
        builder.append(a.charAt(i));
        builder.append(b.charAt(i));
    }
    return builder.toString();
}

或者更优化:

String alternate(String first, String second) {
    char[] firstChars = first.toCharArray();
    char[] secondChars = second.toCharArray();

    int smallerCharsCount = Math.min(firstChars.length, secondChars.length);
    StringBuilder builder = new StringBuilder(smallerCharsCount * 2);
    for (int i = 0; i < smallerCharsCount; i++) {
        builder.append(firstChars[i]);
        builder.append(secondChars[i]);
    }
    return builder.toString();
}
岳永思
2023-03-14
public class Alternator{
    public static String alternate(String a, String b){
        String s = "";
        int i = 0;
        while (i < a.length() && i < b.length()){
            s += a.charAt(i) +""+ b.charAt(i); 
            i++;
        }
        while (i < a.length() ){
            s += a.charAt(i); 
            i++;
        }
        while (i < b.length()){
            s += b.charAt(i); 
            i++;
        }
        return s;
    }
    public static void main(String[] args){
        String a = "two", b = "one";
        String s = Alternator.alternate(a,b);
        System.out.println(s);
    }
}

要使用for循环而不是而循环,只需像下面这样删除所有的而行,然后从每个而循环中删除i行

for(; i < a.length() && i < b.length(); i++){
//the inside of the loop MINUS THE LINE i++ 
}
for(; i < a.length(); i++){
//the inside of the loop MINUS THE LINE i++ 
}
for(; i < b.length(); i++){
//the inside of the loop MINUS THE LINE i++ 
}
 类似资料:
  • 我有两个不同的方法,在两个不同的类中。我希望他们都能阅读同一行输入,并检查不同的内容。一个查找“给我冲杯咖啡”之类的说明,另一个查找不同的关键字,如“请”和“谢谢”(这些影响程序对我的反应): 然后我在我的主字符串中调用它们,只是为了测试它们: 我的控制台显示如下: 我知道发生了什么,但我想不出其他办法。我也尝试过使用同一个扫描仪,不同的字符串,但仍然不起作用。我怎样才能使这两种方法都能读取我的第

  • 我的问题是- 给定两个长度相等的字符串s1和s2作为输入,预期的输出是一个字符串,其中s1的第一个字符,s2的第一个字符,s1的第二个字符,s2的第二个字符,依此类推。例如,如果s1=“外部”,s2=“空间”,则输出为“OSuptaecre”。 我已经用循环完成了,我想知道这个程序是否还有其他简单的代码,比如使用字符串函数。

  • 我试图了解System.in input在Java是如何工作的,我创建了一些输入输出代码。我的目标是显示输入到控制台的所有内容,即使输入中有不同类型的变量(例如String、int)交替出现。当我逐行输入数据,并在每行后按Enter键-输出是正确的。但是,如果我将整个输入复制粘贴到控制台,那么在最后一个for循环的第一次迭代之后,代码就会停止,并等待enter。我该怎么做才能使它在没有输入的情况下

  • 问题内容: 是否可以使用Django中的一个提交按钮提交两种不同的形式?我有一个称为“仪器”的形式和四个相等的形式“配置”。现在,我想始终提交一个配置和工具。例如instrument + config 1和instrument + config 2,并且每个配置都有自己的提交按钮。 我已经在配置表单中用一个按钮尝试过: 并调用js函数“ onclick”: 这是我在views.py中的方法: 问题

  • 首先,我不得不说,我试着用谷歌搜索这个问题的答案,但没有任何答案可以解释我的怀疑。总之,我想了解的是: 此接口有两种不同的实现: 我将在以下示例中使用这些实现: 更新1.1至帖子 我还有一个类使用相同的“动物”界面: 所以我的问题是:1-我如何知道将向AnimalStateManager注入什么实现?2-如果我想强迫“AnimalStateManager”上的“动物”对象成为猫,该怎么办? 更新1

  • 我们正在开发旅游网站,用于预订航班、酒店、汽车等。它是基于产品的软件。客户(购买我们的软件)将成为“主要代理”。他的交易总额将是INR(印度卢比货币)。所有航班、酒店或汽车预订仅以INR进行。 现在他有权创建他的“子机构”。子机构货币可以是美元或印度卢比等。这意味着“主要机构”可能在世界各地都有其子机构。现在,每当“子机构”登录时,他的交易报告都应该使用他的货币。如果其货币为“澳元”,则交易总额应