您的位置:首页 > 编程语言 > Java开发

Java————String类型详解

2016-08-04 20:04 190 查看

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();
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string java