Java基础知识----字符串

一、创建字符串

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、日期和时间字符串格式化

Java基础知识----字符串_第1张图片

Java基础知识----字符串_第2张图片

2、常规类型格式化

Java基础知识----字符串_第3张图片

 六、正则表达式

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、正则表达式的元字符

Java基础知识----字符串_第4张图片

3、正则表达式的限定符

Java基础知识----字符串_第5张图片

4、方括号中元字符的含义

Java基础知识----字符串_第6张图片

 七、字符串生成器

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

你可能感兴趣的:(JavaSE,java,开发语言,后端)