高分悬赏:Java语言怎么把一个数字的奇数位和偶数位拆成2个数字,比如12345,得到135和24
实现思路:
1、转成 String 字符串;
2、String 转成 char[] 字符数组;
3、遍历字符数组,收集奇偶的数到不同的 StringBuffer 后面;
4、打印结果
String str="12345";
String str1="";
String str2="";
for(int i=0;i<str.length();i++){
char c= str.charAt(i);
if(i%2==0){
str1+=c;
}else{
str2+=c;
}
}
System.out.println("str1 = [" + Integer.parseInt(str1) + "]");
System.out.println("str2 = [" + Integer.parseInt(str2) + "]");
第一个回答不能匹配6789这种情况。判断有问题
我写了一个,你可以看情况简化一下,如果测试没问题,希望采纳
public static void main(String[] args) {
int num = 12345;
convert(num);
num = 6789;
convert(num);
}
//转换,传入一个数字
public static int[] convert(int num) {
int odd = 0, even = 0;
String[] ss = String.valueOf(num).split("");
String c1 = "", c2 = "";
for (String s : ss) {
int b = Integer.parseInt(s);
if (b % 2 == 0) { //判断是否是偶数
c1 += b;
} else { //否则为奇数
c2 += b;
}
}
//字符串转int类型。为了演示,加了这个,可以直接放进数组
if (c1 != null && !"".equals(c1)) {
even = Integer.parseInt(c1);
}
if (c2 != null && !"".equals(c2)) {
odd = Integer.parseInt(c2);
}
System.out.println("奇数:" + odd);
System.out.println("偶数:" + even);
int[] nums = new int[2];
nums[0] = odd;
nums[1] = even;
return nums;
}
打印结果
奇数:135
偶数:24
奇数:79
偶数:68