时间限制: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);
}
}
}