例题1:遍历获取字符串中的每一个字符。
public class StringTest {
public static void main(String[] args) {
String s = "javaMySqlHadoopHive12138";
//先将字符串转成字符数组
char[] chars = s.toCharArray();
//再遍历字符数组
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
}
}
例题2:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
public class StringTest {
public static void main(String[] args) {
String s = "javaMySqlHadoopHive12138";
//先定义三个变量统计三个结果
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
//再遍历字符数组得到每一个字符,判断每一个字符是属于哪一类
for (int i = 0; i < chars.length; i++) {
char c = chars[i]; // 取出每一个字符
if (c >= 'A' && c <= 'Z') {
bigCount++;
} else if (c >= 'a' && c <= 'z') {
smallCount++;
} else if (c >= '0' && c <= '9') {
numberCount++;
}
}
System.out.println("大写字符的个数为:" + bigCount); //大写字符的个数为:4
System.out.println("小写字符的个数为:" + smallCount); //小写字符的个数为:15
System.out.println("数字字符的个数为:" + numberCount); //数字字符的个数为:5
}
}
例题3:把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
举例:"hADoopJava" --> "Hadoopjava"
具体实现:
(1)截取第一个字符和其他字符
(2)第一个字符转大写
(3)其他字符转小写
(4)拼接
public class StringTest {
public static void main(String[] args) {
String s = "hADoopJava";
//截取第一个字符和其他字符
String s1 = s.substring(0, 1); //截取第一个字符
String s2 = s.substring(1); //截取除第一个外其它的字符
//第一个字符转大写, 其他字符转小写
String s3 = s1.toUpperCase();
String s4 = s2.toLowerCase();
//拼接
String s5 = s3.concat(s4);
System.out.println("变化之后的字符串是: " + s5);
//用链式编程实现
String s6 = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());
System.out.println("变化之后的字符串是: " + s6);
}
}
例题4:把数组中的数据按照指定格式拼接成一个字符串。
举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]
public class StringTest {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
String s = "";
for (int i = 0; i < arr.length; i++) {
String s1 = String.valueOf(arr[i]); //将int数组转成字符串。valueOf方法是静态修饰的,可以直接通过String类名调用
if (i == 0) {
System.out.print(s.concat("[").concat(s1).concat(",")); // concat方法可以将指定字符串拼接到大字符串的后面
} else if (i == arr.length - 1) {
System.out.print(s.concat(s1).concat("]"));
} else {
System.out.print(s.concat(s1).concat(","));
}
}
System.out.println(s); // [1,2,3]
}
}
例题5:字符串反转。
举例:键盘录入”abc” 输出结果:”cba”
分析:
(1)创建一个空的字符串, 用于与反转后的字符串进行拼接
(2)将字符串转成字符数组
(3)倒着遍历,得到每一个字符
(4)将每次获取到的字符进行拼接
(5)输出
import java.util.Scanner;
public class StringTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s1 = sc.next();
//创建一个空的字符串, 用于与反转后的字符串进行拼接
String s2 = "";
//将字符串转成字符数组
char[] chars = s1.toCharArray();
//倒着遍历,得到每一个字符
for (int i = chars.length - 1; i >= 0; i--) {
//将每个字符转成字符串
String s3 = String.valueOf(chars[i]);
//将每次获取到的字符进行拼接
s2 = s2.concat(s3);
}
System.out.println("倒序后的字符串为:" + s2);
}
}
例题6:统计大字符串中小字符串出现的次数。
举例:在字符串 ”woajavaonajavawzeajavao” 中java出现了3次。
public class StringTest {
public static void main(String[] args) {
//创建一个字符串
String bigString = "woajavaonajavawzeajavao";
//定义要查找的小串:java
String minString = "java";
//定义一个变量统计小串出现的次数
int count = 0;
//在大字符串中找到小字符串第一次出现的位置
int index = bigString.indexOf(minString);
//也有可能第一次找的时候就没有找到
if (index == -1) {
System.out.println("该大串中没有小串: " + minString);
} else {
while (index != -1) {
count++;
//截取字符串
int startIndex = index + minString.length(); // 定义下一次开始查找的索引
bigString = bigString.substring(startIndex); // 大串变为截取java后的新字符串
//继续去找小串出现的位置索引
index = bigString.indexOf(minString);
System.out.println("找到了小串,截取后的大串为: " + bigString);
}
}
System.out.println("java在大串中出现的次数为: " + count);
}
}



