java学习 ——字符串<1>

来源:互联网 发布:大数据架构师做什么 编辑:程序博客网 时间:2024/06/07 14:40

java没有内置的字符串类型,而是在标准的java库中提供了一个预定义类———String。
1.子串

String greeting="hello";String str=greeting.substring(0,3);//创建了一个由“hel”组成的字符串

substring方法中从0开始计数,此例中返回从0开始截取到3之前的字符串(不包含3),greeting.substring(a,b)的长度是(b-a)。
2.拼接
java使用“+”连接两个字符串,当讲一个字符串与一个非字符串的值拼接时,后者转化为字符串。

int age=13;String rating="pg"+age;//rating="pg13";

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

String all=String.join("/","hi","you","are","welcome");//all="hi/you/are/welcome"

3.不可变字符串

greeting=greeting.substring(0,3)+p;//greeting=help

java文档中将String类对象称为不可变字符串,如同数字3永远是数字3一样,字符串“hello”永远包含字符‘h’、‘e’、’l’、’l’、’o’的代码单元序列,而不能修改其中的任何一个字符。但可以改变字符串变量greeting,让它引用另外一个字符串。
不可变字符串还有一个优点:编译器可以让字符串共享。可以想象将各种字符串存放在公共的存储池中,字符串变量指向存储池中相应的位置。如果复制一个字符串变量,原始的字符串与复制的字符串共享相同的字符。
4.检测字符串是否相等

s.equals(t)//如果字符串s与字符串t相等,则返回true;否则,返回falses.equalsIgnore(t)//检测s与t是否相等,且不区分大小写

“==”运算符只能确定两个字符串是否放在同一个位置上,不能用来检测两个字符串是否相等

String greeting ="hello";boolean flag1=(greeting=="hello");//probably trueboolean flag2=(greeting.substring(0,3)=="hel")//probably false

实际上只有字符串常量是可以共享的,而substring等操作产生的结果并不是共享的
5.空串与Null串
空串是长度为0的字符串,它是一个java对象,有自己的串长度(0)和内容(空),String变量还可以存放一个特殊的值——null,表示目前没有任何对象与该变量关联,如果在一个null值上调用对象,会出现错误。

原创粉丝点击