📅  最后修改于: 2023-12-03 15:40:23.037000             🧑  作者: Mango
给定一个整数数组nums,返回由所有偶数位数字组成的新数组。
如果各个数字不足偶数位,则该数字为0。
输入:nums = [1234,567,89,10]
输出:[4, 6, 0, 0]
解释:
输入:nums = [10, 22, 44, 6]
输出:[0, 2, 4, 6]
解释:
class Solution {
public int[] findNumbers(int[] nums) {
ArrayList<Integer> res = new ArrayList<Integer>();
for(int num : nums){
String numString = String.valueOf(num);
int numLength = numString.length();
if(numLength % 2 == 0){
int flag = 0;
for(int i=0; i<numLength; i++){
if(numString.charAt(i) % 2 == 1){
flag = 1;
break;
}
}
if(flag == 0){
res.add(num);
}
}
else{
res.add(0);
}
}
int[] result = new int[res.size()];
for(int i=0; i<res.size(); i++){
result[i] = res.get(i);
}
return result;
}
}
本题主要考查的是字符串的操作。需要熟悉字符串转化为数字和数字转化为字符串的方法。需要注意的是,如果数字的位数不足偶数,则需要直接将当前数字的结果值置为0。