字符串

java字符串是Unicode字符序列,java没有内置的字符串类型,在标准类库中,定义了一个预定义类String

子串 String类可以从一个较大的字符串中提取一个子串,例如

String str="hei sha sha";

String s=str.substring(0,3);

上面代码标示创建了一个由字符"hei"组成的字符串,参数说明,括号内第一个参数代表父串的那个位置开始复制,第二参数代表不想复制的第一个位置,执行substring(a,b)后,其子串的长度为b-a

字符拼接

使用+号进行连接 例如 String str="黑"+"傻傻傻"

如果需要把多个字符串放在一起,而且用定界符分割,可以使用静态join方法 例如

String all=String.join("/","黑","傻","傻");//all="黑/傻/傻"

检查字符串是否相等

使用equals方法检测两个字符串是否相等,相等则返回true,否则返回false

注意:

public class Test {
    public static void main(String [] args)
    {
        String s1="黑傻傻";
        String s2="黑傻傻";
        String s3=new String("黑傻傻");
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s1.equals(s3));
    }
}
输出结果:
true
false
true
Process finished with exit code 0

解释

 java虚拟机中包含了一个字符串池,里面存了很多String对象,并且可以被共享,String类是final类,其值创建后不可改变

main方法中第一行代码在字符串池中创建了一个字符串对象,

第二行代码赋值时发现字符串池中有一个该字符串对应的实例对象,就将该对象引用赋值给了变量s2,s1和s2指向了同一个对象,因此s1等于s2

第三行代码创建了两个对象,一个放在了字符串池中,一个存入了到了堆中,并把对象引用赋值给了s3,存在栈中

s3和s1的栈地址不同,所以s1不等于s3,但s3和s1的数值相同所以最后一句代码结果为true

空串和null串

空串是一个java对象,其值为"",长度为0,他有自己的长度和内容

null串表示目前没有任何对象与该变量关联

检查一个字符串既不是null代码为

if(str!=null&&str.length()!=0){}

字符串的常用API

char charAt(int index) 返回给定位置的代码单元

int compareTo(String other) 按照字典顺序,如果字符串位于other之前返回负数,否则返回正数,相等则返回0

boolean equalsIgnoreCase(String other) 忽略大小写比较字符串相不相等

String toLowerCase() 返回一个新串,全由小写字母构成

String toUpperCase() 返回一个新串,全由大写字母构成

int length() 返回字符串的长度

String replace(CharSequence oldString,CharSequence newString) 返回一个新字符串,该字符串由newString替代所有的oldString,可以用String 或StringBuilder作为CharSequence参数

String substring(int beginIndex) & String substring(int beginIndex,int endIndex) 返回子串(用来截取字符串)

String trim() 返回一个新字符串,新字符串中删除原始字符串头部和尾部的空格

String 和StringBuffer与StringBuilder的区别,它们的应用场景是什么?

String 是不可变的,后两者可变,StringBuffer是StringBuilder的前身,StringBuilder是在jdk1.5引入的

如果所有字符串在一个单线程环境中编辑,则应该用StringBuilder代替StringBuffer





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值