春眠不觉晓,String知多少?

什么是String?

在这里插入图片描述

String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。 字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们。 例如: String str = “abc”;类String包括用于检查序列的各个字符,用于比较字符串,用于搜索字符串,用于提取子字符串以及用于创建具有被翻译为大写或小写的所有字符的字符串的副本的方法。

基本办法

在这里插入图片描述
在这里插入图片描述
1.获取
1.1 字符串长度。

int length():获取长度。

int length():获取长度。
1.2 根据位置获取位置上的某个字符。

char charAt(int index) :返回指定索引处字符。

char charAt(int index) :返回指定索引处字符。
1.3 根据字符获取该字符在字符串中的位置。如果没有找到返回-1.

int indexOf(int ch):找到该字符第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex处开始索引。
int indexOf(String str)
int indexOf(String str,int fromIndex):从fromIndex检索字符串str的位置。

相反的,如果需要反向索引,有类似方法

int lastIndexOf(*) 从右往左索引,然后**输出其在字符串数组中的位置**

2.判断
2.1 字符串中是否包含某一个子串。

 boolean contains(CharSequence str);
★特殊之处:int indexOf(str)也可以检索str是否存在。

2.2 字符串中是否有内容。

boolean isEmpty():原理就是判断length是否为0

2.3 字符串是否是以指定内容开头。

boolean startWith(String str);

2.4 字符串是否是以指定内容结尾

boolean startWith(String str);

应用场景:通过判断文件名检索所需要的文件

2.5 判断字符串内容是否相同

boolean equals(str)

2.6 判断内容是否相同并忽略大小写

boolean equalsIgnoreCase(str)

3.转换
3.1 将字符数组转成字符串
构造函数

String(char[]) 
String(char[],offset,count)将字符数组一部分转成字符串

例:

char[] arr = {
    
    'a','b','c','d','e','f'}; 
String s = new String(arr,1,3);

结果将是 bcd.因为数组下角标从0开始,故这里起始位是b,取3个字符,即为bcd.

静态方法:需要跟在String后使用

static String copyValueOf(char[]);
static String copyValueOf(char[],offset,count);

3.2 将字符串转成字符数组

char[] toCharArray();

3.3 将字节数组转成字符串

String(byte[]; 
String(byte[],offset,count);

3.4 将字符串转成字节数组

byte[] getBytes();

3.5 将基本数据类型转成字符串

static Sting valueOf();

特殊:字符串和字节数组在转换过程中是可以指定编码表的

4.替换

String replace(old char/str,new char/str)

注意:由于字符串一旦被创建不能被改变,所以这里的替换后将会返回一个新字符串副本,而原来的字符串不会有变换

5.切割

String[] split(regex)  以regex为分割符号进行分割

6.子串

String substring(begin);从指定出开始到结尾 
String substring(begin,end);从begin处开始到end处结束,之间的子串。**包括begin但不包括end.**

String s = "abcdef";
s1 = s.substring(2);
s2 = s.substring(2,4);
结果s1=cdef,s2=cd。

7.转换
7.1 将字符串转成大写或者小写

String toUpperCase();

String toLowerCase();

7.2 将字符串两端多个空格去除

String trim();

7.3 对两个字符串进行自然顺序的比较

int compareTo(str);**比较两个字符串大小,并返回第一个不同的字符之间的ASCII码值差值。**
		public class String类的判断功能 {
    
    
			public static void main(String[] args) {
    
    
				//定义三个字符串;
				String a = "linkinPark";
				String b = "linkinPark";
				String c = "LinKinPark";
				//boolean equals(Object obj):将此字符串与指定的对象比较 。
				System.out.println(a.equals(b));//true
				System.out.println(a.equals(c));//false
				System.out.println("—————————");
				//boolean equalsIgnoreCase(String str):将此字符串和另一个字符串进行比较,忽略大小写。
				System.out.println(a.equalsIgnoreCase(b));//true
				System.out.println(a.equalsIgnoreCase(c));//true
				System.out.println("—————————");
				//boolean contains(String str):判断此字符串中是否包含str这个子字符串。
				System.out.println(a.contains("Park"));//true
				System.out.println(a.contains("Lin"));//false
				System.out.println("—————————");
				//boolean startsWith(String str):判断是否以str子字符串开头。
				System.out.println(a.startsWith("lin"));//true
				System.out.println(a.startsWith("Lin"));//false
				System.out.println("—————————");
				//boolean endsWith(String str):判断是否已str字符串结尾。
				System.out.println(a.endsWith("Park"));//true
				System.out.println(a.endsWith("park"));//false
				System.out.println("—————————");
				//boolean isEmpty():判断字符串是否为空。
				String e = " ";
				System.out.println(e.isEmpty());//false
				String f = null;//java.lang.NullPointerException
				//加入非空判断
				if(f!=null){
    
    
					System.out.println(f.isEmpty());
				}
			}
		}

在这里插入图片描述
废话时间:

如果客官觉得食用合适可不可以给一个免费的赞!谢谢谢了!慢走客官!建议打包收藏,下次再来。店小二QQ:309021573,欢迎骚扰!

猜你喜欢

转载自blog.csdn.net/AzirBoDa/article/details/112968022