Java————String类型详解

Java————String类型详解

String类型,在源代码中其实就是创建了char类型的数组,

private final char value[];

final决定了string类型的引用只能够初始化一次,且引用不可以被修改,但是只有这一个修饰符的话,数组里面的数值是可以修改的。
private决定了char数组只能在当前的类里面使用,对外部没有提供相应的修改里面数据的方法,所以char数组里面的值,定义了就不能被修改了。

因为这两个修饰符的同时存在,所以,string类型的值,只能够初始化一次,且不能被修改。
然而对于字符串的拼接,删除的操作,对于string来说,在源代码里面会创建一个新的数组,然后把之前数组里面存放的数据复制到新的数组里面。
所以每当创建一个对象,就会在常量池中开辟一个空间存放这个常量,多个引用变量的引用都可以指向这个变量,假如,string的值可以被改变,那么一个常量被多个引用指向,一个引用修改了它的值,那么所有引用他得变量都会被改变,这样的话安全性就得不到了保证。

string类型,和string类型的比较,比较的始终都是指向地址的值。

string类型中包含的方法:

String name="abcdefghijklmnopqrstuvwxyz";
String name1="abcdefghijklmnopqrstuvwxyz123456";
/*
    ------------charAt(int index)   返回的是下标是index的值得字符
    char c=name.charAt(1);//返回的是下标为一的字符
    ------------compareTo()  字符串比较,相等的话返回的是0,大于的话返回的是一个正数,小于返回的是一个负数。
    System.out.println(name.compareTo(name1));
    ------------concat  连接字符串,将两个字符串拼接起来。会创建一个新的字符串并且返回。
    concat和+的区别
        concat,如果字符串的长度为0,那么会返回这个原字符串,否则会创建一个新的字符串存放。
        +是可以将任何类型的数据加在后面。
    String s=name.concar("中百发");
    System.out.println(name);
    ------------contains   查询是否包含指定的字符串
    boolean flag=name.contains("abcd");
    ------------startsWith  判断一个数是不是以xxx开头,  endswith   判断一个数是不是以xxx结尾
    boolean a=name.startsWith("aaaaa");
    boolean b=name.endsWith("cc");
    ------------equals   比较字符串是否相等,我们也可以重写equals方法
    注意区分equals和==的区别,  equals比较的是两个字符串在堆内存中的值是否相等,而==是比较两个字符串指向的地址是不是同一个地址。
    System.out.println(name.equals(name1));
    ------------hashCode()   获取对象的哈希值,如果两个对象使用equals相同,那么他们的哈希值一定相同,如果两个哈希值相同,那么他们两个字符串不一定相等
    System.out,println(name.hashCode());
    ------------getBytes  获取字符串对应的字符数组  有可能产生乱码
    byte[] b=name.getBytes();
    -------------indexOf()    返回当前字符所在的索引值。
    int i=name.indexOf("a");
    -------------length     返回字符串的长度
    System.out.println(name.length());
    -------------replace    替换字符串
    String newname=name.replace("abc","_");
    System.out.println(newname);
    -------------split     拆分字符串  拆分成两个字符串,其中split里面参数的字符就会被删掉
    name.split("aaa");
    -------------trim    去掉前后两端的空格  
    System.out.println(name.trim());
    -------------toLowerCase()   toUpperCase()   将字符串转换成大小写
    name.toLowerCase();
*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值