字符串统计
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
有一种思路是用ASCII码来判断,以下是代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
for(int i=0;i<n;i++){
String aString=scanner.next();
char[] s=aString.toCharArray();
int number=0;
for(int j=0;j<aString.length();j++){
int b=s[j];
if((b>47)&&(b<58)){
number++;
}
}
System.out.println(number);
}
}
}
第二种思路是if语句判断
当数组中的元素等于某个数字是输出该数字
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int first=sc.nextInt();
String arr[]=new String[first];
for(int i=0;i<first;i++) {
arr[i]=sc.next();//每一排字符串存入数组
int count=0;//计数器
char arrChar[]=arr[i].toCharArray();//将字符串拆分成字符数组
for(int j=0;j<arrChar.length;j++) {
switch(arrChar[j]) {//计数
case '0':count++;break;//注意数字要用‘’
case '1':count++;break;//因为是char型
case '2':count++;break;
case '3':count++;break;
case '4':count++;break;
case '5':count++;break;
case '6':count++;break;
case '7':count++;break;
case '8':count++;break;
case '9':count++;break;
}
}
System.out.println(count);//输出
}
}
}
}