1、声明字符串
在Java语言中的字符串必须在一对“ ”(双引号)之内。
例如:
"33"、"Hello"、"世界"
2、创建字符串
String类即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用,用双引号括起来进行声明。
(1)String(char a[])用数组创建字符串
char arr[]={'n','b','a'};
String str=new String(arr);
//以上操作相等于 String str=new String("nba");
(2)String(char a[],int offset,int length)提取字符数组
offset开始提取字符的位置,length提取字符的长度。
char arr[]={'a','b','c','d','e','f',g};
String str=new String(arr,2,4);
//以上操作相等于 String str=new String("cdef");
(3)String str="value"
String str=new String("abcd");
1、连接多个字符串
使用“+”运算符可完成对多个字符串连接的功能。
String str1="aa";
String str2="bb";
String str=str1+str2;
System.out.println(str);
//输出结果:aabb
2、连接其他数据类型
字符串也可同其他基本数据类型进行连接。
String str1="葫芦娃";
int i=7;
String str2="兄弟";
System.out.println(str1+i+str2);
//输出结果:葫芦娃7兄弟
1、获取字符串长度
使用String类的length()方法可获取声明的字符串对象的长度。
语法如下: str.length();
String str1="Hello World";
int str=str1.length();
System.out.println(str);
//输出结果:11
2、字符串查找
String类提供了两种查找字符串的方法,即indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。
(1)indexOf(String s)
查询字符串首次出现的索引。
String str1="Hello World";
int str=str1.indexOf("H");
System.out.println(str);
//输出结果:0
(2)lastIndexOf(String str)
查询字符串最后一次出现的索引。(从后面开始数,包括空格)
String str1="Hello World";
int str=str1.lastIndexOf("o");
System.out.println(str);
//输出结果:7
3、获取指定索引位置的字符
使用charAt()方法可将指定索引处的字符返回。
语法如下: str.charAt(int index)
str:任意字符串。 index:整型值,用于指定要返回字符的下标。
String str1="Hello World";
char str=str1.charAt(1);
System.out.println(str);
//输出结果:e
1、获取子字符串
通过String类的substring()方法可对字符串进行截取。这些方法的共同点就是都利用字符串的下标进行截取,并应明确字符串下标是从0开始的。
(1)substring(int beginIndex)
String str1="Hello World";
String str=str1.substring(2);
System.out.println(str);
//输出结果:llo World
(2)substring(int beginIndex, int endIndex)
String str1="Hello World";
String str=str1.substring(0,2);
System.out.println(str);
//输出结果:He
2、去除空格
trim()方法返回字符串的副本,忽略前导空格和尾部空格。
语法如下: str.trim()
String str1=" Hello World";
System.out.println(str1);
String str=str1.trim();
System.out.println(str);
/*输出结果:
Hello World
Hello World
*/
3、字符串替换
replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。
语法如下: str.replace(char oldChar,char newChar)
oldChar:要替换的字符或字符串。
newChar:用于替换原来字符串的内容。
String str1="Hello World";
String str=str1.replace("l", "L");
System.out.println(str);
//输出结果:HeLLo WorLd
4、判断字符串的开始与结尾
startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。
这两个方法的返回值都为boolean类型。
String str1="123123";
boolean b1=str1.startsWith("12"); //判断b1为“12”开头
boolean b2=str1.endsWith("12"); //判断b2为“12”结束
System.out.println(b1);
System.out.println(b2);
/*输出结果:
true
false
*/
5、判断字符串是否相等
判断字符串是否相等有equals()、equalsIgnoreCase()两种方法,而又有各自的规则,使用不好就会出错,所以一定要区分好什么时候用哪种方法。
(1)equals()
String str1="Hello World";
String str2="hello world";
boolean b1=str1.equals(str2);
System.out.println(b1);
//输出结果:false
(2)equalsIgnoreCase() 不区分大小写比较
String str1="Hello World";
String str2="hello world";
boolean b1=str1.equalsIgnoreCase(str2);
System.out.println(b1);
//输出结果:true
6、按字典顺序比较两个字符串
compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。
7、字母大小写转换
字符串的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而toUpperCase()方法可将字符串中的小写字母改写为大写字母。
(1)toLowerCase()
String str1="Hello World";
String str=str1.toLowerCase();
System.out.println(str);
//输出结果:hello world
(2)toUpperCase
String str1="Hello World";
String str=str1.toUpperCase();
System.out.println(str);
//输出结果:HELLO WORLD
8、字符串分割
split()方法根据指定的分割符对字符串进行分割,并将分割后的结果存放在字符串数组中。
(1)split(String str)
String str1="He.llo.Wor.ld";
String[] str=str1.split("\\.");
for(String a:str) {
System.out.println(a);
}
/*输出结果:
He
llo
Wor
ld
*/
(2)split(String str,int limit)
String str1="He.llo.Wor.ld";
String[] str=str1.split("\\.",3);
for(String a:str) {
System.out.println(a);
/*输出结果:
He
llo
Wor.ld
*/
String类的静态format()方法用于创建格式化的字符串。
(1)format(String format,object.......)
Date date=new Date();
String year=String.format("%tY", date);
System.out.println("今年是:"+year);
//输出结果:今年是:2021
(1)format(Local l,String format,object.......)
如果Local l为null则不进行本地化
1、日期和时间字符串格式化
2、常规类型格式化
1、判断是否符合正则表达式的方法
使用String类的matches()方法进行判断。
boolean matches(String regex)
regex:指定的正则表达式
String rexx="\\w+@+\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
String str="[email protected]";
String str1="2222@";
if(str.matches(rexx)){
System.out.println(str+"是合法邮箱");
}
if(str1.matches(rexx)){
System.out.println(str+"是合法邮箱");
}
//输出结果:[email protected]是合法邮箱
2、正则表达式的元字符
3、正则表达式的限定符
4、方括号中元字符的含义
1、StringBuilder类
StringBuilder类,即字符串生成器,新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度,也可以动态地执行添加、删除和插入等字符串的编辑操作,大大提高了频繁增加字符串的效率。
2、StringBuilder类的常用方法
StringBuilder类的构造方法有很多,主要是参数上的区别,这里我们主要介绍几种在编程中经常会用到的方法。
(1)StringBuilder append(String str)方法
StringBuilder bf=new StringBuilder("Hello World");
bf.append("--aaa");
System.out.println(bf);
//输出结果:Hello World--aaa
(2)StringBuilder append(StringBuffer sb)方法
StringBuilder bf=new StringBuilder("Hello World");
bf.append(1111);
System.out.println(bf);
//输出结果:Hello World1111
(3)StringBuilder insert(int offset, String str) 方法
StringBuilder bf=new StringBuilder("Hello World");
bf.insert(2, 26262);
System.out.println(bf);
//输出结果:He26262llo World
(4)StringBuilder delete(int start, String end)方法
StringBuilder bf=new StringBuilder("Hello World");
bf.delete(0, 2);
System.out.println(bf);
//输出结果:llo World