0
点赞
收藏
分享

微信扫一扫

字符串中常见的方法总结

小禹说财 2022-02-21 阅读 91

一、构造方法

1.

String str1 = "abc";//通过字符串常量池创建
String str2 = "abc";//通过字符串常量池创建

这是创建字符串的一种特殊方法,此方法是在字符串常量池中创建的。 通过此方式创建,如果两个字符串的内容相同的话,则虚拟机不会再常量池中创建新的空间来存储,也就是说,此时的str1和st2是指向同一个内存空间,引用同一个字符串。

2.

String str = new String();//创建一个字符串,它的内容为空
str = "abc";

这个构造方法不穿任何东西,创建一个内容为空的字符串。 

3.

String str1 = new String("abc");//在堆中开辟空间,存储字符串
String str2 = new String("abc");

此构造方法创建字符串对象,当传入一个字符串时,虚拟机会在堆中开辟一个空间,来存储这个字符串,此时str1和str2指向两个不同的空间,虽然它们的内容一样,但是它们的内存位置完全不一样。

4.

char[] c = {'a','b','c'};
String str1 = new String(c);//传入一个字符数组

此构造方法通过传入一个字符数组,会将字符数组中的内容以字符串的形式存储起来,从而创建一个新的字符串。

5.

char c = {'a','b','c','d','e','f'};
String str = new String(c,2,3);//传入一个字符数组,并指明开始存储的下标和存储的个数

此构造方法是传入一个字符数组,并指明开始存储的下标和存储的个数。也就是str中存储的是"cde"。

6.

String str = "中国";
byte[] Zijie = str.getBytes();//将存储字符串的Unicode(默认两个字节)编码转为Ascii码存储在字节数组中
String str1 = new String(Zijie);//根据自己数组中保存的便把值,创建出新的字符串
System.out.println(str1);

此构造方法传入一个字节数组。通过数组中保存的编码值来创建字符串。

7. 

String str = "中国";
byte[] Zijie = str.getBytes();//将存储字符串的Unicode(默认两个字节)编码转为Ascii码存储在字节数组中
String str1 = new String(Zijie,StandardCharsets.UTF_8);//根据自己数组中保存的便把值,创建出新的字符串,第二个参数是传入一个编码格式。根据这个编码格式来存储字符。
System.out.println(str1);

和5略有不同的是 这个构造方法允许传入一个字符编码格式。UTF-8,这个格式是用三个字节来存储一个字符。

二、静态方法

1.copyValueOf()

char[] c = {'a','b','c','d','e','f'};
String str = String.copyValueOf(c);//用于将字符数组中的内容复制到字符串中
String str = String.copyValueOf(c,2,3);//从下标为2开始,复制3个

用于将字符数组中的内容复制到字符串中 。

2.format()

String str = "abc";
String str = String.format("字符串%s",str);

 此方法用于格式化输出,将要输出的内容转化为字符串

3.join()

String str = String.join("*","北京","天津","深圳","上海","杭州","西安");
//将传入的字符串通过*来连接起来;

 此方法的功能是将多个字符串用某个特殊的符号连接起来,存入str中的内容就是 "北京*天津*深圳*上海*杭州*西安";

4.valueOf()

int num = 666999888;
String str = String.valueOf(num);
//将num转换成字符串

此方法测作用是将其他类型的值转换成字符串 

三、其他方法

1.indexOf()

String str = "I love China very much!";
int index = str.indexOf("very");//直接在字符串中查找是否有“very”,有就返回该下标,否则返回-1
int index1 = str.indexOf("very",2);//指明在字符串str下标为2的地方开始查找

此方法用于在字符串中查找某个子字符串第一次出现的下标,如果存在则返回该字符串的下标,否则返回-1;

2.lastIndexOf()

String str = "I love China very much very much!";
int index = str.lastIndexOf("very");
int index1 = str.lastIndexOf("very");

此方法用于返会在某个子字符串在字符串中最后一次出现的下标。 

3.charAt()

String str = "abcdefgh";
char c = str.charAt(1);

此方法的功能是在字符串中取出对应下标的字符,上面代码中c中存储的是'b';

4.equals()

"abc".equals("abc");

此方法是判断两个字符串的内容是否相等,相等饭回true,否则返回false

5.startWith()

"abcdef".start(ab);

此方法测功能是判断字符串是否艺谋个字符串开始的,是则返回true,否则返回false

6.endWith()

此方法是判断字符串是否以某个字符串结尾

String str = "abcdefghijk";
boolean is = str.endWith(ijk);//判断字符串是否以某个字符串结尾,是则返回true,否则为false
System.out.println(is);//输出true

7.contains()

此方法是判断字符串中是否包含某个子字符串,包含则返回true,否则返回false

8.isEmpty()

此方法是判断字符串是否为空字符串(即里面什么也没有存,仅仅只是一个字符串),是则返回true,否则返回false

9.replace()

String str = "中国万岁!";
String str1 = str.replace('!','呀');//单个字符替换
System.out.println(str1);//输出 中国万岁呀
str1 = str.replace("中国","China");//字符串替换指定字符串
System.out.println(str1);//输出 China万岁!

此方法是将字符串中的内容替换成某个指定的内容,可字符替换字符,也可字符串替换字符串。

10.replaceAll ()

String str = "赵.钱:孙李;,周1吴3郑4王";
str = str.replaceAll ("[\\,\\.\\;[0-9]","");//正则表达式,会将字符串中出现的"[]"中的内容全部替换为"";

此方法支持正则表达式,可用于字符串中某些子字符串的替换

11.split()

String str = "192.168.98.55";
String[] array = str.split(\\.);//分割字符串,将字符串以"."分割,分割后会返回一个数组

此方法用于分割字符串,完成分割后返回一个数组

 12.trim()

此方法用于去掉字符串两端的空格,制表符,回车等符号,但不能去掉字符串中间的

13.toCharArray()

此方法用于将字符串转换成一个字符数组。 

14.format()

String name = "tom";
String str = String.foamat("姓名%s\n",name);
System.out.println(str);

此方法用于将字符串格式化输出。

  这里只是总结了String类型的部分方法,由于水平有限,可能会有不对的地方,欢迎大家指正!

举报

相关推荐

0 条评论