每日一学(19)——String类方法使用练习
题目一:获取指定字符串中,大写字母、小写字母、数字的个数。
思路:
1.为了统计大写字母、小写字母、数字的个数。创建3个计数的变量。
2.为了获取到字符串中的每个字符,进行字符串的遍历,得到每个字符。
3.对得到的字符进行判断,如果该字符为大写字母,则大写字母个数+1;如果该字符为小写字母,则小写字母个数+1;如果该字符为数字,则数字个数+1。
4.显示大写字母、小写字母、数字的个数
编码表中大写字母A-Z是65-90,小写是97-122,数字0-9是48-57
题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。
思路:
1.把字符串分为两个部分,第一部分为字符串中第一个字母,第二部分为剩下的字符串。
2.把第一部分字符串转换成大写字母,把第二部分字符串转换成小写字母
3.把两部分字符串连接在一起,得到一个完整的字符串
题目三:查询大字符串中,出现指定小字符串的次数。如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。
思路:
1.在大串中,查找小串出现的位置,出现了就次数+1
2.在上次小串出现位置的后面继续查找,需要更改大串的内容为上次未查询到的字符串。
3.回到第一步,继续查找小串出现的位置,直到大串中查询不到小串为止
下面代码的输出结果为:
大写字母的个数为3
小写字母的个数为3
数字的个数为4
转换后的英文为Awer
package day15;
public class stringdemo03 {
public static void main(String[] args) {
getCount("Da1Eb3F4c5");
toConvert("aWER");
System.out.println(getStringCount("hellojava,nihaojava,javazhenbang","java"));
}
/*
* 题目三:获取一个字符串中另一个字符串出现的次数
* 思想:
* 1、indexOf到字符串中找第一次出现的索引
* 2、找到的索引+被找字符串长度,截取字符串
* 3、计数器++
*/
public static int getStringCount(String str,String key){
//定义一个计数器
int count=0;
//定义变量,保存indexOf查找后的索引的结果
int index=0;
//开始循环找,条件,indexOf==-1字符串没有了
while((index=str.indexOf(key))!=-1){
count++;
//获取到的索引,和字符串的长度求和,截取字符串
str=str.substring(index+key.length());
}
return count;
}
/*
* 题目二:获取指定字符串中大写字母、小写字母、数字的个数
* 思想:
* 1、计算器,就是一个int变量,满足一个条件++
* 2、遍历字符串,长度方法length()+charAt()遍历
* 3、字符判断是大写,是小写还是数字
*/
public static void getCount(String str){
//定义三个变量计数
int upper=0;
int lower=0;
int digit=0;
//对字符串进行遍历
for(int i=0;i<str.length();i++){
//String方法charAt,索引,获取字符
char c=str.charAt(i);
//利用编码表进行判断65-90大写字母97-122小写字母 48-57数字
if(c>=65 && c<=90){//还可以把65写成’A’,90写成’Z’
upper++;
}else if(c>=97 && c<=122){
lower++;
}else if(c>=48 && c<=57){//注意一定要有if,不然“%”也会算成数字进行输出
digit++;
}
}
System.out.println("大写字母的个数为"+upper);
System.out.println("小写字母的个数为"+lower);
System.out.println("数字的个数为"+digit);
}
/*
* 题目一:将字符串中首字母转成大写,其他字母转成小写
* 思想:
* 获取首字母charAt(0) substring(0,1)
* 转成大写toUpperCase()
* 获取剩余字符substring(1)
* 转成小写toLowerCase()
*/
public static void toConvert(String str){
//定义变量获取首字母和剩余字符
String start=str.substring(0,1);
String end=str.substring(1);
start=start.toUpperCase();
//String s1=start.toUpperCase();第二种方法
end=end.toLowerCase();
//String s2=end.toLowerCase();第二种方法
System.out.println("转换后的英文为"+start+end);
//System.out.println("转换后的英文为"+s1+s2);
}
}
题目二的另一种方法:
public static String toConvert(String str){
//定义变量获取首字母和剩余字符
String start=str.substring(0,1);
String end=str.substring(1);
start=start.toUpperCase();
//String s1=start.toUpperCase();第二种方法
end=end.toLowerCase();
//String s2=end.toLowerCase();第二种方法
return start+end;
}main方法调用中直接输出:System.out.println(toConvert("aWER"););