时间限制:1秒  空间限制:32768K  热度指数:172200
 算法知识视频讲解

题目描述

写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:

输入一个有字母和数字以及空格组成的字符串,和一个字符。

输出描述:

输出输入字符串中含有该字符的个数。

示例1

输入

ABCDEF A

输出

1


怎么说呢,这道题不难,题目的测试用例的输入格式有问题,明明字符串和字符在一行上,但实际测试的时候是换行的。。。微笑

下面第一部分代码是通过测试的。


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		while(in.hasNext()){
			String str=in.nextLine().toLowerCase();
                        String c=in.nextLine().toLowerCase();
			char[] ch=str.toCharArray();
                        char[] ce=c.toCharArray();
                        char e=ce[0];
			int num=0;
			for(int i=0;i<ch.length;i++){
				if(ch[i]==e)
					num++;
			}
			System.out.println(num);
		}
	}

}

这一部分代码是错误的,即当输入字符串和字符在同一行上




import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		while(in.hasNext()){
			String str=in.nextLine().toLowerCase();
			char[] ch=str.toCharArray();
			int num=0;
            char e=ch[ch.length-1];
			for(int i=0;i<ch.length-2;i++){
				if(ch[i]==e)
					num++;
			}
			System.out.println(num);
		}
	}

}