常用类(3-2):String类的练习
案例1:遍历获取字符串中的每一个字符
/*
"hadoopjavaMySQL12138"
需求:遍历获取字符串中的每一个字符
*/
public class StringDemo1 {
public static void main(String[] args) {
//定义该字符串
String s = "hadoopjavaMySQL12138";
//将字符串转换为字符数组(s.toCharArray().var回车)
char[] c = s.toCharArray();
//遍历字符数组
for(int i = 0;i<c.length;i++){
if(i==0){
System.out.print("["+c[i]);
}else if(i==c.length-1){
System.out.print(c[i]+"]");
}else{
System.out.print(c[i]);
}
}
}
}
执行结果如下:
[hadoopjavaMySQL12138]
Process finished with exit code 0
案例2:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
/*
"hadoopjavaMySQL12138"
需求:
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
(不考虑其他字符)
*/
public class StringDemo2 {
public static void main(String[] args) {
//定义该字符串
String s = "hadoopjavaMySQL12138";
//将字符串转换为字符数组(s.toCharArray().var回车)
char[] c = s.toCharArray();
//定义三个变量统计三个结果
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
//for()循环统计出现的次数
for(int i = 0;i<c.length;i++){
if(c[i] >= 'A' && c[i] <= 'Z'){
bigCount++;
}else if(c[i] >= 'a' && c[i] <= 'z'){
smallCount++;
}else if(c[i] >= '0' && c[i] <= '9'){//注意:数字字符也要加引号
numberCount++;
}
}
//统计次数
System.out.println("大写字母字符的个数为:"+bigCount);
System.out.println("小写字母字符的个数为:"+smallCount);
System.out.println("数字字符的个数为:"+numberCount);
}
}
执行结果如下:
大写字母字符的个数为:4
小写字母字符的个数为:11
数字字符的个数为:5
Process finished with exit code 0
案例3:将一个字符串的首字母转成大写,其余字母转成小写
/*
需求:将一个字符串的首字母转成大写,其余字母转成小写
举例:"hADoopJava" ---> "Hadoopjava"
分析:
1、全部转成小写
2、获取第一个字符,转成大写
*/
public class StringDemo10 {
public static void main(String[] args) {
//定义该字符串
String s = "hADoopJava";
//将字符串中每一个字符转小写(s.toLowerCase().var回车)
String s1 = s.toLowerCase();//hadoopjava
//获取转成小写后的字符串中第一个字符(从索引0开始,截取1个输出)
String s2 = s1.substring(0, 1);//h
//将获取的第一个字符转大写
String s3 = s2.toUpperCase();//H
//获取除第一个字符以外的字符串(截取掉第1个,剩下的输出)
String s4 = s1.substring(1);//adoopjava
//将转大写的字符与后面所有小写的进行拼接
String res = s3.concat(s4);//需要在前面的就写在前面:H+adoopjava
System.out.println(res);//Hadoopjava
/*
链式编程
String res2 = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase();
System.out.println(res2);
*/
}
}
案例4:键盘录入一个字符串,将字符串反转
/*
字符串反转
举例:键盘录入”abc” 输出结果:”cba”
分析:
1、导包并创建键盘录入对象
2、创建一个空的字符串
3、将字符串转换成字符数组
4、倒着遍历,得到每一个字符
4、将每次获取到的字符拼接
5、输出
*/
//导包
import java.util.Scanner;
public class StringDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");//输入我爱阿伟
//键盘输入一个字符串
String s = sc.next();
//定义一个空的字符串
String s1 = "";
//将输入的字符串转换成字符数组
char[] chars = s.toCharArray();
//倒着遍历,得到每一个字符
for (int i = chars.length - 1; i >= 0; i--) {
//将每次获取到的字符拼接
s1 += chars[i];
}
System.out.println("倒序后的字符串为:" + s1);//伟阿爱我
}
}
案例5:统计大串中小串出现的次数
*
统计大串中小串出现的次数
字符串为” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”
需求:统计java出现了几次?
*/
public class StringDemo13 {
public static void main(String[] args) {
//定义这个大的字符串
String s1 = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
//定义一个需要找的小串
String s2 = "java";
//定义一个变量统计小串出现的次数
int count = 0;
//在大串中找到小串第一次出现的位置
int index = s1.indexOf(s2);//返回的是首字母‘j’的索引值
System.out.println("第一次找到java的索引值为:"+index);//第一次找到j的索引值为4
//开始截取(可能第一次找的时候就没找到)
if(index==-1){
System.out.println("该大串中没有该小串");
}else {
while(index!=-1){//当索引不等于-1的时候开始截取(此时说明找到了j)
count++;//如果找到了'j',次数加1
//截取字符串:索引值加上小串的长度
int startIndex = index + s2.length();
s1 = s1.substring(startIndex);
//继续查找小串出现的次数
index = s1.indexOf(s2);
}
}
System.out.println("java出现的次数为:"+count);
}
}
执行结果如下:
第一次找到java的索引值为:4
java出现的次数为:5
Process finished with exit code 0