- 西安交通大学915考研--编程题Java代码踩坑(2016年真题)
- 2016.1--去除字符串中的所有数字
- 2016.2--统计整型数字number中数字k的个数
思路:
- 将字符串转成字符型数组
- 遍历数组,对于每一个不是数字的部分,拼接起来;是数字continue
代码实现:
package com.xjtu;
import java.util.Scanner;
public class A2016_01 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
in.close();
System.out.println(removeNumber(s));
}
public static String removeNumber(String string) {
char[] arr = string.toCharArray();//字符串转字符数组
String s = "";
for (char a : arr) {//遍历数组,筛选不是数字的成分拼接起来
if (a - '0' >= 0 && a - '9' <= 0) {
continue;
} else {
s = s + a;
}
}
return s;
}
}
输入输出:
哈哈wi83h,00wr++- 哈哈wih,wr++-2016.2–统计整型数字number中数字k的个数
思路1:
- 将数字转成字符串,字符串转成字符数组方便处理
- 遍历,统计k的个数
思路2:
- 对数字取模10,求其个位,判断是不是k
- 数字除以10,继续1操作,判断十位,依次是百位、千位、更高位
- 注意循环结束的条件
代码实现:
package com.xjtu;
import java.util.Scanner;
public class A2016_02 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
System.out.println(getCount_1(number, 6));
System.out.println(getCount_2(number, 6));
}
public static int getCount_1(int number, int k) {
int count = 0;
if (k < 0 || k > 9) {//k 值合法性判断
return -1;
} else {
String string = Integer.toString(number);//数组转字符串
char[] arr = string.toCharArray();//字符串转字符数组
for (char a : arr) {
if (a - '0' == k) {//遍历找到 k,count 值加一
count++;
}
}
}
return count;
}
public static int getCount_2(int number, int k) {
int count = 0, temp;
if (k < 0 || k > 9) {//k 值合法性判断
return -1;
} else {
while (number != 0) {
temp = number % 10;
if (temp == k) {
count++;
}
number = number / 10;
}
}
return count;
}
}
输入输出:
1864176 2 2
2016年题目结束,这里是传送门:
西安交通大学915考研–编程题Java代码踩坑(2015年真题)



