一、题目链接
http://noi.openjudge.cn/ch0107/01/
二、解题思路
2.1 java.lang.String.toCharArray()
方法:返回由当前字符串内容构成的char
类型数组;
2.2 java.lang.Character.isDigit(char ch)
方法:返回true
当且仅当ch
为数字字符,否则false
;
2.3 循环遍历给定字符串的每个字符:
▲ 如果当前字符是数字字符,则令计数器增加1
。
三、实施步骤
3.1 自定义方法public int count(String text)处理所有业务逻辑:
→ 参数text
为String
类型的对象,代表给定字符串;
→ 方法count
返回int
类型的非负整数,代表text
中数字字符的个数。
自定义方法public int count(String text)实施步骤如下:
首先,定义char[] chars=text.toCharArray()
,将text
的内容转存为字符数组处理;
其次,定义int
类型的变量ans=0
,代表text
中数字字符的个数;
然后,通过foreach循环遍历chars
数组的每个元素e
,循环处理如下:
▲ 令ans=(isDigit(e)?ans+1:ans)
;
最后,返回ans
。
3.2 在方法main
中输入给定字符串,将其作为参数注入方法count
,输出计算结果。
四、Java程序
import java.util.Scanner;
import static java.lang.Character.isDigit;
public class Main {
/**
* 返回给定字符串中数字字符的个数
*
* @param text String类型的对象,代表给定字符串
* @return int类型的非负整数,代表text中数字字符的个数
*/
public int count(String text) {
char[] chars = text.toCharArray(); // 将text的内容转存为字符数组处理
int ans = 0; // text中数字字符的个数,初始时为0
/* 通过foreach循环遍历chars数组的每个元素e */
for (char e : chars) {
ans = (isDigit(e) ? ans + 1 : ans); // 如果当前元素e是数字字符,则令ans增加1,否则ans不变
}
return ans; // 返回ans
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String text = input.nextLine(); // 定义并输入给定字符串
System.out.print(test.count(text)); // 调用count方法获得text中数字字符的个数,输出结果
}
}