String概述
String 构造方法:
100
整段加条件:
快捷键: ctrl+alt +t
for循环次数 n.fori n代表次数
101
CharAt()应用:
for (int i = 0; i < str.length(); i++) {
//i 依次表示字符串的每一个索引
char c = str.charAt(i);
System.out.println(c);
}
字符串遍历 str.length().fori
--------------------------------------------------------------------------------------------------------------------------------
//键盘输入一个字符串,统计该字符串 大写字母,小写字母,数字的个数
//键盘输入一个字符串,统计该字符串 大写字母,小写字母,数字的个数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = sc.next();
int daxie=0,xiaoxie=0,shuzi=0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i)>='a'&&str.charAt(i)<='z'){
xiaoxie++;
}else if (str.charAt(i)>='A'&&str.charAt(i)<='Z'){
daxie++;
}else if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
shuzi++;
}
}
System.out.println("大写:"+daxie);
System.out.println("小写:"+xiaoxie);
System.out.println("数字:"+shuzi);
}
--------------------------------------------------------------------------------------------------------------------------------
// 定义一个方法,把int数组中的数据按照指定格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 //例如 数组int[]{1,2,3} 输出: [1,2,3]
// 定义一个方法,把int数组中的数据按照指定格式拼接成一个字符串返回,调用该方法,并在控制台输出结果
//例如 数组int[]{1,2,3} 输出: [1,2,3]
public static void main(String[] args) {
int arr[] ={1,2,3,4};
System.out.println(arrtoString(arr));
}
public static String arrtoString(int arr[]){
if (arr==null){
return "";
}
else if(arr.length==0){
return "[]";
}
//当代码执行到这里,表示数组不是null,长度也不为0。
String result="[";
for (int i = 0; i < arr.length; i++) {
result+=arr[i];
if (i<arr.length-1){
result+=",";
}
}
result=result+"]";
return result;
}
str.length().fori 正向遍历循环
str.length().forr 反向遍历循环
shift+F6:批量修改
//定义一个方法,实现字符串的反转
public static void main(String[] args) {
System.out.println(strReverse("abc"));
}
public static String strReverse(String str){
String result="";
for (int i = str.length()-1; i >= 0; i--) {
//i依次表示字符串中的每一个索引
char c = str.charAt(i);
result+=c;
}
return result;
}
--------------------------------------------------------------------------------------------------------------------------------
public static void main(String[] args) {
//1.输入一个金额,并进行验证
Scanner sc = new Scanner(System.in);
System.out.println("请输入金额:");
int money = sc.nextInt();
//验证金额
while (true) {
if (money >= 0 && money <= 9999999) {
break;
} else {
System.out.println("你输入的金额有误,请重新输入!");
}
}
//2.将每个位置的数字取出
String moneyStr = "";
while (true) {
int ge = money % 10;
String captiaclNumber = getCaptical(ge);
moneyStr=captiaclNumber+moneyStr;
money /= 10;
if (money==0){
break;
}
}
//3.不足七位的补零
int count = 7-moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr="零"+moneyStr;
}
//4.每位后面添加单位
String arr[]={"佰", "拾", "万", "仟", "佰", "拾", "元", };
String result = "";
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
result=result+c+arr[i];
}
System.out.println(result);
}
//将小写变为大写
public static String getCaptical(int number) {
String captal[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
return captal[number];
}
输入:2135,输出:零佰零拾零万贰仟壹佰叁拾伍元
---------------------------------------------------------------------------------------------------------------------------------
加密手机号:
public static void main(String[] args) {
//1.获取一个手机号码
String phoneNumber = "15837013389";
//2.截取手机号码前面的三位
String preThree = phoneNumber.substring(0, 3);
//3.截取手机号码后四位
String backFour = phoneNumber.substring(7);
String result = preThree+"****"+backFour;
System.out.println(result);
}
--------------------------------------------------------------------------------------------------------------------------------
从身份证号码中获取信息
public static void main(String[] args) {
//1.定义一个变量存储身份证号码
String idNumber = "411426199904196610";
//获取出生年、月、日
String birthyear = idNumber.substring(6, 10);//(6,14);
String birthmonth = idNumber.substring(10, 12);
String birthday = idNumber.substring(12, 14);
//获取性别代码
String sexNum = idNumber.substring(16, 17);//获取到的是字符串 数字 需要将其变为int 型
//也可以使用
// char c = idNumbercharAt(16)
//利用ASCII码表进行转换
/*
* ‘0’ ---》 48
* ‘1’ ---》 49
* 例如:’9‘ - 48 = 9
* */
String sex = "";
int num = Integer.parseInt(sexNum);
sex = num%2!=0? "男":"女";
System.out.println(birthyear + "年" + birthmonth + "月" + birthday + "日," + "性别:" + sex);
}
输出: 1999年04月19日,性别:男
--------------------------------------------------------------------------------------------------------------------------------
敏感词替换
public static void main(String[] args) {
//1.获取到 字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入内容:");
String context = sc.next();
//2.可以将敏感词汇定义一个库
String arr[] = {"TMD", "tmd", "MLGB", "mlgb", "SB", "sb", "CNM", "cnm"};
//3.循环得到数组中的每一个敏感词,依次进行替换
for (int i = 0; i < arr.length; i++) {
context = context.replace(arr[i], "***");
}
//4. 打印结果
System.out.println(context);
}
StringBuilder
StringBuilder是一个容器,创建后内容可以发生变化。
作用:提高字符串的操作效率
StringBuilder构造方法:
public StringBuider()
public StringBuider(String str)
StringBuider常用方法:
public StringBuilder append(任意类型)
public StringBuilder reverse()
public static void main(String[] args) {
//1.创建StringBuilder对象
StringBuilder sb = new StringBuilder("abc");
//2.添加元素
sb.append(1);
sb.append(2.3);
sb.append("asd");
sb.append(true);
//2.反转方法
sb.reverse();
//3.获取长度
int len = sb.length();
System.out.println(len);
/*
* 普及:StringBuilder是java已经写好的类
* java在底层对他进行了一些特殊处理
* 打印对象不是地址值,而是属性值
* */
System.out.println(sb);
}
//3.再把StringBuilder变回字符串
String str = sb.toString();
System.out.println(str);
//链式编程: //当我们调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
String result = new StringBuilder().append(str).reverse().toString();
判断字符串是否对称:
public static void main(String[] args) {
//1.键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
//2.反转键盘录入的字符串
// StringBuilder sb = new StringBuilder(str);
// sb.reverse();
//链式:
String result = new StringBuilder().append(str).reverse().toString();
//3.比较
if (str.equals(result)){
System.out.println("对称");
}else
System.out.println("不对称");
}
//使用StringBuilder的场景: //1.字符串的拼接 //2.字符串的反转
拼接字符串:
public static void main(String[] args) {
//1.定义数组
int arr[] = {1,2,3,4};
//调用方法把数组变成字符串
System.out.println(arrToString(arr));
}
public static String arrToString(int arr[]){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i==arr.length-1){
sb.append(arr[i]).append("]");
}else
sb.append(arr[i]).append(", ");
}
return sb.toString();
}
StringJoiner概述:
StringJoiner和StringBuilder一样,也可以看成一个容器,创建之后内容是可以改变的。
作用:提高字符串的操作效率,而且代码编写特别简洁,但是市场上用得少。
总结:
--------------------------------------------------------------------------------------------------------------------------------
总结: