微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过添加“0”使两个字符数组相等?爪哇

如何解决如何通过添加“0”使两个字符数组相等?爪哇

我遇到了一些问题。我有两个字符数组(例如 char[] number1 = {'1','1','1'} 和 char[] number2 {'2','2'})。现在我想返回与 number1 相同长度的数组,但在左侧的索引中添加 '0'(例如,在这种情况下 => {'0','0','2','2' }

我尝试这样的事情:

public static char[] whichShorter(char[] first,char[] secend){

    if(first.length >= secend.length) return secend;
        else return first;

}

public static char[] whichLonger(char[] first,char[] secend){

    if(first.length >= secend.length) return first;
    else return secend;

}

public static char[] makeEqual(char[] first,char[] secend){
  char[] longer = whichLonger(first,secend);
  char[] shorter =  whichShorter(first,secend);
  char[] addZero = new char[longer.length];
  

    for (int i = shorter.length; i >0 ; i--) {

        addZero[i]=shorter[i-1];

    }

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

        if(addZero[i]==(char) 0) addZero[i]='0';

    }
    
    return addZero;

}

我想它一点也不难,但我很努力,但没有效果(我尝试先在纸上画画,一切都如此)。

解决方法

你可以这样做:

Stream<Character> leadingZeros = IntStream.range(0,number1.length - number2.length)
        .mapToObj(i -> '0');
Stream<Character> originalChars = IntStream.range(0,number2.length)
        .mapToObj(i-> number2[i]);

Character[] newNumber2 = Stream.concat(leadingZeros,originalChars).toArray(Character[]::new);

System.out.println(Arrays.toString(newNumber2));

输入 1:

char[] number1 = {'1','1','1'};
char[] number2 = {'2','2'};

输出 1:

[0,2,2]

输入 2:

char[] number1 = {'1','2','2'};

输出 2:

[2,2]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。