黑马程序员技术交流社区

标题: 【上海校区】字符串 [打印本页]

作者: 梦缠绕的时候    时间: 2018-9-17 10:13
标题: 【上海校区】字符串
子串

可以调用string类中的substring方法来截取字符串

例:

substring 方法后面会总结

拼接

Java允许使用‘+’来拼接两个字符串

不可变字符串

也就是说不能直接修改内存中的字符串 但是可以修改代表字符串的标符来间接修改字符串。

比如说

str = "str";

不能直接修改"str",这里面的内容是不变的。

但是可以修改标识符来改变标识符指向的字符串

str = str.substing(0,1)+"sn";

就可以得到新的字符串;

检测字符串是否相等

可以用equals方法来检测两个字符串是否相等

例:

对于表达式t.equals(e);

如果字符串t与e相等则返回true 否则false

注意:

"=="是来测试字符串地址是否相等。

空串与Null串

空串是长度为0的字符串

可以使用下列代码检测字符串是否为空

if(str.length() == 0)

if(str.equals(""))

string类的对象还可以存放特殊值null这个表示没有任何对象与该变量相关联 如果要检查一个字符串是否为null

if(str == null)

检查一个字符串既不为空也不为null

使用if(str != null && str.length() !=0)

一定要首先检查字符串是否为null否则会出错//有待补充

代码单元与代码点

char类型代表一个代码单元 而一个代码点可能代表一对代码单元。

string的length方法返回的是字符串的代码单元数量。

想要得到真正的字符串长度即代码点数量可以调用

str.codePointCount(0,str.length());

调用charAt(n)方法将会返回n位置的代码单元

想要得到第i个代码点,则应该使用下列语句

int index = str.offsetByCodePoints(0,i);

int cp = str.codePointAt(index);

在UTF-16中表示某个字符需要两个代码单元。

String 类中的方法

常用的方法有

1.equals(Object other)

如果字符串与other相等,返回true

2.equalsIgnoreCase(String other)

也就是忽略大小写的equals方法

3.startsWith(String prefix)     endsWith(String suffix)

如果字符串以prefix开头(suffix结尾)则返回true

4.indexOf(String str) indexOf(String str,int fromIndex)

从0位置(或fromIndex位置)开始计算 如果在原始串中不存在str 则返回-1

5.length()

返回字符串的长度(代码单元的数量)

6.codePointCount(int startIndex,int endIndex)

返回startIndex与endIndex之间的代码点数量。将没有配对的代用字符计入代码点

7.substring(int beginIndex) substring(int beginIndex,int endIndex)

返回一个新字符串。这个新字符串包含从beginIndex到串尾或endIndex-1的所有代码单元

8.trim()

返回一个新字符串。这个字符串删除了头和末尾的空格

9.toCharArray()

将字符串转化成字符数组

StringBuffer类

StringBuffer类也可以存放字符串,和String类不同的是,StringBuffer字符串代表的是可变的字符序列,可以对字符串对象内容进行修改。

StringBuffer  append(各类型参数)追加到字符串后面

length() 校验字符串长度

tostring()转化成字符串形式



作者: 不二晨    时间: 2018-9-20 17:33
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2