Java中String的基本运用上

Java中的String类

String类实现了
Serializable,Comparable,CharSequence接口并通过final关键字修饰,所以不能被继承。
String是一个符合类型,是一个不可变的字符串,字符串是一个常量,一旦创建就不能更改它的值和长度(定长)。

(String的底层是通过基本类型的字符类型char实现的)

String可以通过new创建,直接给一个String变量赋值。

String s=new String();

String中的方法

序号方法名具体功能补充
1charAt(index)获取字符串中index的位置,返回一个字符串index相当与数组的下标从0开始到达它的长度减一,(注意超过长度就会显示字符串下标越界的错误)
2length()返回字符串的长度与数组同理
3concat(s2)将s2拼接到当前调用concat方法的字符串后面,生成一个新的字符串,原来的字符串不变s2是另一个需要拼接的字符串,因为字符串是定长的所以拼接的字符串需要一个新的变量来接收
4contains判断字符串中是否有子字符串返回一个boolean类型例如有字符串"ABC"它的子串有A,B,C,AB,BC,ABC
5endswith(s2)判断当前调用endswith()方法的字符串中是否以s2结尾,返回一个boolean类型s2是需要判断的另一个字符串
6equals(Object o)判断两个字符串是否相等,不忽略大小写由于字符串是符合类型它的数据是放在堆里的所以在对比两个字符串是否相等事不能通过==来判断,equals重写了Object的equals方法
7equalslgnoreCase(s2)忽略大小写判断当前调用equalslgnoreCase()方法的字符串与s2字符串是否相等s2是需要对比的一个字符串,这个方法多用于验证码的登录
8indexof(s2)返回s2在当前调用indexof()方法的字符串中第一次出现的位置如果不包含返回负一(s2可以是字符串也可以是字符串)
9lastlndexof(s2)返回s2在当前调用indexof()方法的字符串中最后一次出现的位置如果不包含返回负一(s2可以是字符串也可以是字符串)
10isempty()判断当前调用该方法的字符串是否为空空字符串是" "指的是字符串的长度,不是null
11replace(s1,s2)将当前调用该方法的字符中s1字符串替换为s2的字符串原字符串不变,因为修改了字符串所以需要接收这个方法的使用率比较高只要是修改字符串大多数都能使用这个方法
12replaceAll("[0-9]",x)将当前字符串中的所有数字替换为x可以和正则表达式一起使用更方便
13spilt("#")将当前字符串通过#拆开,拆开后需要用字符串接收如果括号中的参数是转义字符必须在前面加上\如"\."
14substring(int n)从当前字符串的第n个位置截取后面的所有字符串n是你输入的相当于字符串下标的数字下标从0开始
15substring(n,m)从当前字符串的第n个位置截取到第m个位置,不包含m个位置,原字符串不变需要一个String类型的变量接收
16toLowerCase()将当前字符串中的所有大写字母转换为小写字母,原字符串不变,生成一个新的字符串需要一个String类型的变量接收
17toUperCase()将当前字符串中的所有小写字母转换为大写字母,原字符串不变,生成一个新的字符串需要一个String类型的变量接收
18trim()将当前字符串两边的空格去掉,中间的空格不管一般用于判断用户注册和登录时
19valueof(int x)这是一个静态方法,效果是把x转换成字符串可以通过加空引号实现相同方法

如有不足请通过评论补充

String对象通过直接赋值和通过new的区别

String s1="ABC";
//可能创建对象或者不创建
//如果"ABC"在JavaString池中不存在,会在JavaString池中创建对象"ABC",如果已经存在"ABC"对象s1的指针会直接指向存在的那个"ABC"对象,不会创建新对象.
String s2=new String("ABC");
//当new出现的时候就至少创建一个对象.

判断String对象是否相等
new对象

String s1= new String("ABC"); 
String s2 = new String("ABC");
//s1==s2的值是true还是false?
//false
//new了两个不同的对象

不new对象

String s1 = "ABC"; 
String s2 = "ABC"; 
String s3 = "A" + "BC"; 
//s1== s2的值是true还是false?
//true 
//s1 == s3的值是true还是false? 
//true

//s1在内存中没有找到"ABC"新建了一个对象为ABC,s2发现内存中有"ABC"就直接指向了s1创建的"ABC",s3与s2相同在内存中直接指向了"ABC" 
String s1 = "ABC"; 
String s2="AB"; 
String s3=s2+"C";
System.out.println(s1==s3); 
//false
//这里s2+"C"的时候是创建了一个新的对象,然后把这个新的对象引用指向s3

到这里都是一下String的一些基础知识,大多可以通过jdk的API文档查阅这里只是粗略的介绍一些String中的常用方法,如有不足请在评论区分享出来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值