字符串

                    字符串


    从概念上来讲字符串就是Unicode字符序列,java中没有内置的字符串类型,而是在标准java类库中提供一个预定义类,她就叫做String。每个用双引号括起来的字符串都是String类型的。例如:

                              String a = "你好。";

                          子串


    子串:字符串中任意个连续的字符组成的子序列称为该串的子串。

      那么怎么知道一个字符串有多少个子串呢?

例:字符串ab的子串:a、b、ab和一个空子串共4个即(2+1+1)个,abc的子串:a、 b、 c、 ab、 bc 、abc和一个空子串 共(3+2+1+1)个,

所以若字符串的长度为n,则子串的个数就是[n*(n+1)/2]+1个,"software"中非空子串的个数就是8+7+....+1=36个

    怎么得到子串呢?

我们可以使用substring方法,列如:

String a ="Hello";

String s = a.substring(0,3);这样我们就得到了一个有字符Hel组成的字符串。从下标为0的开始截取但是不包括3。

                        拼接

与绝大数的程序语言一样,java中也允许使用+号来进行拼接两个字符串。

注意:当一个字符串与一个非字符串拼接时,后者被转换为字符串(任意一个java对象都可以转换成字符串)

int age =21;  String a ="拼接"+age;这个时候a输出则为‘拼接21’。这种特性通常使用在输出语句中。

                  字符串不可改变

长度不可变(不能增加,不能删除)

内容不可变(内容不可以被修改以及替换)

String提供了哪些功能?

删除字符串(字符)

String a= "hello"

String b = a.delete(2,3)

-----delete(int start,int end);

-----deleteCharAt(int index);

替换字符串(字符)

-----replace(String old,,String str);

-----replacr(char oldChar,char newChar);

追加字符串

-----append();//1组重载方法

插入字符串

-----insert(int index,xx)//1组重载方法

判断字符串以什么开头

-----startsWith(String str);

判断字符串以什么结尾

-----endsWith(String str);

获取出现的位置

-----indexOf();//1组方法  offset

改变大小写

-----toUpperCase();

-----toLowerCase();

求子串

-----subString(int index);

-----subString(int start,int end);

去除前后空格

-----trim();

判断是否包含

-----contains(String str);

判断是否相等

-----equals(String anotherStr);

分割字符串

-----split(String rule);

比较大小:

-----compareTo(String anotherStr);

求字符串的长度

-----length();

StringBuilder代表什么数据类型?

可变字符串

字符串自身可变(长度、内容可变)

StringBulider具有哪些功能?

追加

----append();//参数是要追加的内容

插入

----insert(int index,xxx)

删除

----delete(int start,int end)

替换

----replace(int start,int end, String str);

----setCharAt(inde,char);

StringBuffer和StringBuilder一样。

方法同上

StringBuffer和StringBuilder有什么区别?

StringBuilder效率高,多线程下不安全。(推荐)

StringBuffer效率低,多线程下安全。

你可能感兴趣的:(字符串)