如何解决如何通过添加“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 举报,一经查实,本站将立刻删除。