Java常用类之String

一、简介

java.lang.String 字符串就是一个字符序列,由多个字符组成,是Java中最常用的类型

字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们。

二、创建方式

2.1 直接创建

该方式本身来说是不符合引用类型的特点,不符合面向对象的规范

原则上来说,所有引用类型都应该通过new关键来创建对象,只有基本数据类型才能直接赋值

String是一种特殊的引用类型,由于特别常用,所以JVM对其做了优化

 String str = "helloWorld";
 String str2="s"; //只包含一个字符的字符串
 String str3="";//空字符串
2.2 通过构造方法创建
 String str4 = new String();//创建一个空字符串对象
 String str5 = new String("HelloWorld");

三、常用的方法

返回类型方法名作用
charcharAt获取指定索引位置的字符
intlength获取字符串的长度
intindexOf获取指定子字符串第一次出现的位置,如果找不到则返回­-1
intlastIndexOf获取指定子字符串最后出现的位置
booleanequals判断值是否相等
booleanequalsIgnoreCase忽略大小写,判断值是否相等
booleanstartsWith判断是否以指定子字符串开头
booleanendsWith判断是否以指定子字符串结尾
booleancontains判断是否包含指定子字符串
booleanisEmpty判断字符串是否为空
Stringconcat字符串拼接
Stringsubstring字符串截取, 范围[beginIndex,endIndex),左闭右开
StringtoUpperCase将字符串中的所有字符转为大写
StringtoLowerCase将字符串中的所有字符转为小写
Stringreplace把字符串中的某个字符替换成指定的字符
Stringtrim去掉字符串中的首尾空格
String[]split将字符串分割为数组
char[]toCharArray将字符串转换为字符数组
byte[]getBytes将字符串转换为字节数组

四、常用方法演示

4.1 charAt(int index) 获取指定索引的字符
 String str = new String("helloWorld");//创建一个字符串对象
 char c = str.charAt(5);//获取索引(下标)为5的字符
 System.out.println("字符串str下标为5的字符是:"+c);//打印索引对应的字符
4.2 length() 获取字符串的长度
String str = new String("helloWorld");
int length = str.length();//获取字符串的长度
System.out.println("字符串str的长度为:"+length);
4.3 indexOf(String str) 获取指定子字符串第一次出现的位置,如果找不到则返回­-1
 String str = new String("helloWorld");
 int lo = str.indexOf("lo");//找str中存在的'lo'
 System.out.println("字符串lo在str中第一次出现的位置:" + lo);
 --------------------------------------------------------
 String str = new String("helloWorld");
 int os = str.indexOf("os");//字符串'os'在str中不存在
 System.out.println("字符串os在str中第一次出现的位置:" + os);//结果为-1
 ---------------------------------------------------------
 String str = new String("helloWorld");
 int o = str.indexOf("o",3);//o表示要找的数据,3表示要从索引是3开始找
 System.out.println("从索引为1开始找,字符串o在str中第一次出现的位置:" + o);
4.4 lastIndexOf(String str) 获取指定子字符串最后出现的位置
String str = new String("StudyJava");
int a = str.lastIndexOf("a");
System.out.println("字符串str中字符a最后一次出现的位置:" + a);

lastIndexOf和indexOf十分相似,区别在于indexOf是找字符串第一次出现的位置,lastIndexOf是找字符串最后一次出现的位置,如果指定查找的字符串不存在,都会返回-1

4.5 equals(Object o) 判断值是否相等
String str = new String("StudyJava");
String str2 = "StudyJava";
System.out.println("equals内容比较:"+str.equals(str));//true
System.out.println(" == 地址比较:" +(str == str2));//false
4.6 equalsIgnoreCase(String str) 忽略大小写,判断值是否相等
String str = new String("StudyJava");
String str2 = new String("studyJAva");
boolean bool = str.equalsIgnoreCase(str2);
System.out.println("忽略大小写比较内容:" + bool);//true
4.7 startsWith(String str) 判断是否以指定子字符串开头
String str = new String("StudyJava.java");
boolean stu = str.startsWith("Stu");//判断是否是以Stu开头
boolean stu2 = str.startsWith("stu");//判断是否是以stu开头
System.out.println("stu:" + stu);//true
System.out.println("stu2:" + stu2 );//false
4.8 endsWith(String str) 判断是否以指定子字符串结尾
String str = new String("StudyJava.java");
boolean endsWith = str.endsWith(".java");//判断是否是以 .java 结尾
System.out.println("endsWith:" + endsWith);//true
boolean endsWith2 = str.endsWith(".class");//判断是否是以 .class 结尾
System.out.println("endsWith:" +endsWith2 );//false
4.9 contains(String str) 判断是否包含指定子字符串
String str = new String("StudyJava.java");
boolean bool = str.contains("Java");
System.out.println("字符串str中是否包含Java:" + bool);//true
boolean study = str.contains("study");
System.out.println("字符串str中是否包含study:" + study);//false
4.10 isEmpty() 判断字符串是否为空
String str = new String("");
String str2 = new String("HelloWorld");
System.out.println("str:" + str.isEmpty());//true
System.out.println("str2:" + str2.isEmpty());//false

注意:str.isEmpty()本质上就是判断str.length==0 ,它不等同与str == null

4.11 concat(String str) 拼接字符串
 String str = new String("Hello");
 String concat = str.concat("World");
 System.out.println("拼接后的新字符串:" + concat);//HelloWorld

注意:str.concat(“World”) 和 str + “World” 的结果是一样

4.12 substring(int beginIndex,int endIndex) 字符串截取, 范围[beginIndex,endIndex),左闭右开
String str = new String("WelcomeToStudyJava");
String substring = str.substring(9, str.length());//表示从索引为9开始截取,截取到最后
System.out.println("截取后得到的新字符串为:" + substring);

注意:截取的字符串是包含开头不包含结尾的,还有的是截取的结束索引不能大于字符串的长度(endIndex <= str.length())

4.13 toUpperCase() 将字符串中的所有字符转为大写
String str = new String("WelcomeToStudyJava");
String toUpperCase = str.toUpperCase();
System.out.println("把字符串的每个字符都转成大写:" + toUpperCase);//结果:WELCOMETOSTUDYJAVA
4.14 toLowerCase() 将字符串中的所有字符转为小写
String str = new String("WelcomeToStudyJava");
String toLowerCase = str.toLowerCase();
System.out.println("把字符串的每个字符都转成小写:" + toLowerCase);//结果:welcometostudyjava
4.15 replace(char oldChar,char newChar) 把字符串中的某个字符替换成指定的字符
String str = new String("WelcomeToStudyJava");
String replace = str.replace("a", "o");//把字符串中的字符‘a’替换为‘o’
System.out.println("替换后的新字符串:" + replace);//结果WelcomeToStudyJovo
4.16 trim() 去掉字符串中的首尾空格
String str = new String(" Welcome To Study Java ");
String trim = str.trim();
System.out.println("去掉首尾空格后的新字符串:" + trim);

注意:trim()方法只是去掉字符串的首尾的空格,如果字符串的内容中间有空格,调用此方法是不能去掉的

4.17 split(String regex) 将字符串分割为字符串数组
 String str = new String("我-想-做-个-好-人");
 String[] split = str.split("-");//以横杠‘-’分割
 System.out.println("横杠-分割后为:" + Arrays.toString(split));
 String str2 = new String("不好意思我是个警察");
 String[] split2 = str2.split("");
 System.out.println("使用默认分割后为:" + Arrays.toString(split2));

注意:使用split方法时,写分割规则时要检查字符串中是否能匹配得到,不要是没有效果的(默认规则 “” 除外)

4.18 toCharArray() 将字符串转换为字符数组
 String str = new String("再给我次机会我也想做个好人");
 char[] chars = str.toCharArray();
 System.out.println("字符串转换为字符数组:" + Arrays.toString(chars));
4.19 getBytes() 将字符串转换为字节数组
String str = new String("abcdefghijklmnopqrstuvwxyz");
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));

结语:

String类还有很多的方法,以上列出的只是比较常用的。需要了解更多有关String类方法的小伙伴可以去JDKAPI中看看,肯定会有所收获。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值