杭电acm P2017字符串的统计

自己写的:

import java.util.Scanner; 
public class P2017{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
 while(sc.hasNext()){
     int n=sc.nextInt(); 
     int[] count=new int[n]; 
     String[] str = new String[n]; 

 for(int i=0;i<n;i++){
       str[i]=sc.next(); 
       int num=str[i].length();
        for(int j=0;j<num;j++){ 
          if(str[i].charAt(j)>='0'&&str[i].charAt(j)<='9'){
                 count[i]++; 
                } 
         }
     }
     for(int i=0;i<n;i++){
         System.out.println(count[i]);
     }
 }

}
}

/*
* sc.nextInt(): 只接收整数,,整数后面的换行符还留在流内不读出来
* sc.next(): 接收到空白符就丢,直到接收到一个非空白符的字符串,以遇到下一个空白符为停止标记
* sc.nextLine(): 接收到换行符就停,把换行符及前面部分从流中取出来, 把换行符丢掉,剩下的部分就是返回值
*/

更优方法:

public class P2017 
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    sc.nextLine();//吸掉多余换行符
    while(n-->0){
        //String str = sc.next();
        String str = sc.nextLine();
        int count=0;
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if(ch>='0' && ch<='9'){
                count++;
            }
        }
        System.out.println(count);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值