找出给定字符串中大写字符(即'A'-'Z')的个数 接口说明 原型:int CalcCapital(String str); 返回值:int |
|
知识点 | 字符串 |
---|---|
运行时间限制 | 10M |
内存限制 | 128 |
输入 |
输入一个String数据 |
输出 |
输出string中大写字母的个数 需考虑字符串为空 如果为空输出0 |
样例输入 | add123#$%#%#O |
样例输出 | 1 |
import java.util.*; public class calUpper{ public static void main(String[] args){ Scanner cin=new Scanner(System.in); String str=cin.nextLine(); int count=0; if(!str.equals(" ")){//注意不要用str!=" "比较字符串 for(int i=0;i<str.length();i++){ char c=str.charAt(i); if(c>='A' && c<='Z'){ count++; } } }else{ System.out.println(0); } System.out.println("count:"+count); } }
题目一:通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
题二:题目描述(40分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".
2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"
示例
输入:“cccddecc” 输出:“3c2de2c”
输入:“adef” 输出:“adef”
输入:“pppppppp” 输出:“8p”
class Test1 { //去掉重复字符 static void stringFilter(char InputStr[],long len,char OutputStr[]){ int[] a=new int[26]; int num=0; int j=0;//OutputStr[]计数 for(int i=0;i<len;i++){ num=InputStr[i]-'a'; if(a[num]==0){//没出现过 OutputStr[j]=InputStr[i]; j++;//输出下标增加一次 a[num]=1;//赋值完了之后就置1 } } } //压缩字符 static void stringZip(char InputStr[],long len,char OutputStr[]){ char temp=' '; int num=1;//计算重复的个数 int point=0; for(int i=0;i<len;i++){ if(InputStr[i]==temp){ num++; }else{ if(num!=1){ OutputStr[point++]=(char)(num+'0');//把重复的个数输出 num=1; } OutputStr[point++]=temp;//把重复的字符输出 temp=InputStr[i];//把新的字符给temp } } } public static void main(String[] args) { char[] test={'a','a','a','c','b','b','b','a','a','c','a','d','d','d','c','d','e'}; long len=test.length; char[] res=new char[(int)len]; stringFilter(test,len,res); int j=res.length; for(int i=0;i<j;i++){ if(res[i]!=' '){//只要还没到结尾,就一直输出 System.out.print(res[i]); }else break; } char[] res2=new char[(int)(2*len)]; stringZip(test,len,res2); for(int i=0;i<2*len;i++){ if(res2[i]!=' '){ System.out.print(res2[i]); }else break; } } }