一、通过键盘输入的字符串判断输入的字符大小写字符数字字符及其他字符个数
import java.util.Scanner;
public class CountNumber {
public static void main(String[] args) {
//通过键盘录入统计输入的字符大写字母、小写字母、数字、其他字符的个数
int bigChar = 0;
int litterChar = 0;
int numberChar = 0;
int otherChar = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.next();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c >= 'A'&& c <= 'Z'){
bigChar++;
}else if(c >= 'a' && c <= 'z'){
litterChar++;
}else if(c >='0' && c <= '9'){
numberChar++;
}else{
otherChar++;
}
}
System.out.println("大写字母有:"+bigChar+"个");
System.out.println("小写字母有:"+litterChar+"个");
System.out.println("数字有:"+numberChar+"个");
System.out.println("其它字符有:"+otherChar+"个");
}
}
二、字符串反转操作
public class StringOperate {
public static void main(String[] args) {
//字符串反转
String result = rollBack("abc");
System.out.println("字符反转之后为:"+result);
}
public static String rollBack(String str) {
String result = "";
for (int i = str.length()-1; i >= 0; i--) {
char c = str.charAt(i);
result =result+c;
}
return result;
}
}
三、字符串的截取Api: substring(int a,int b) (左闭右开)
手机号码屏蔽演示:
public static void main(String[] args) {
//获取一个手机号码字符
String phoneNumber = "11111111111";
//获取前三位
String start = phoneNumber.substring(0,3);
//获取后四位
String end = phoneNumber.substring(6,10);
//下面方式也可
//String end = phoneNumber.substring(7);
//进行拼接
String result = start +"****"+end;
//打印手机号码
System.out.println(result);
}
根据输入的身份证号打印出生年月日并判断性别演示:
@Test
public void born(){
//定义一个字符串记录身份证号码
String id = "111111111111111111";
//获取出生年月日
String year = id.substring(6, 10);
String month = id.substring(10, 12);
String day = id.substring(12, 14);
System.out.println("该用户的信息为:");
System.out.println("出生年月日:"+year+"年"+month+"月"+day+"日");
//获取性别
//关键在于把字符转为数字进行判断:通过ASCII码表进行转换
//'0' ---> 48
// ....
//'9' ---> 57
char gender = id.charAt(16);
int num = gender - 48 ;
//身份证号第17位奇数为男偶数为女
if(num%2==0){
System.out.println("性别为:女");
}else {
System.out.println("性别为:男");
}
}
四、字符串替换操作Api: replace(要替换的字符,替换后的字符)
游戏语言友好交流中常见屏蔽演示
@Test
public void replace(){
//定义要说的话
String talk ="会不会玩呀!别送了,NMD,SB";
//定义一个敏感词仓库
String [] arr ={"NMD","SB","TMD","NMLGB","ZZB","CNM"};
//循环数组中的每一个元素,进行替换
for (int i = 0; i < arr.length; i++) {
talk = talk.replace(arr[i],"小可爱");
}
//打印过滤后的字符串
System.out.println(talk);
}
五、StringBuilder
使用StringBuilder的场景:
1.字符串的快速拼接
2.字符串的反转
StringBuilder为什么要转String?
由于StringBuilder对象为我们创建的只是一个容器来快速的操作字符串但无法使用String对象当中的方法只有通过toString方法把StringBuilder对象转换为String对象才能够使用String中为我们提供的方法
因为StringBuilder是Java已经写好的类,在底层做了特殊处理 所以在直接打印对象时打印的不是地址值而是属性值
常用Api:append 拼接字符串 、reverse 反转字符串、获取字符长度length、把StringBuilder对象转换为String对象: toString
//创建对象
StringBuilder sb = new StringBuilder("abc");
//StringBuilder拼接元素Api append
sb.append(11);
sb.append("def");
sb.append(true);
System.out.println(sb);
//StringBuilder反转字符Api reverse
sb.reverse();
System.out.println(sb);
//获取长度
int len = sb.length();
System.out.println("该字符的长度为:"+len);
//把StringBuilder对象转换为String对象: toString
String s = sb.toString();
System.out.println(s);
}
通过StringBuilder方法判断输入的字符串是否是对称的
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.next();
//通过StringBuilder反转字符串
//进行了一个链式编程
String result = new StringBuilder().append(str).reverse().toString();
//进行比较
if (result.equals(str)) {
System.out.println("当前字符是对称的");
} else {
System.out.println("当前字符不是对称的");
}
通过StringBuilder对数组进行格式打印演示:
@Test
public void format(){
//定义数组
int [] arr = {1,2,3,4};
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
sb.append(arr[i]);
}else {
sb.append(arr[i]+",");
}
}
sb.append("]");
String s = sb.toString();
System.out.println(s);
}
六、StringJoiner
指定拼接字符的中间格式
@Test
public void format2(){
//创建StringJoiner对象,指定中间的间隔符号
StringJoiner sj = new StringJoiner("----");
//添加元素
sj.add("aaa").add("bbb").add("aaa");
System.out.println(sj);
}
指定要拼接字符的中间 间隔符、开始符号、末尾符号
@Test
public void format3(){
//创建对象指定中间间隔符、开始符号、末尾符号
StringJoiner sj = new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("aaa");
int len = sj.length();
//长度指的是所以的字符
System.out.println("字符长度为:"+len);
String str = sj.toString();
System.out.println(str);
}