Java 开发从入门到精通(第2版)
上QQ阅读APP看书,第一时间看更新

3.4 字符串

知识点讲解:

字符串(String)是由0个或多个字符组成的有限序列,是编程语言中表示文本的数据类型。通常以字符串的整体作为操作对象,例如在字符串中查找某个子串、求取一个子串、在字符串的某个位置插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置的字符都相等。假设pq是两个字符串,求qp中首次出现的位置的运算叫作模式匹配。字符串的两种最基本的存储方式是顺序存储和链接存储。

3.4.1 字符串的初始化

在Java程序中,使用关键字new来创建String实例,具体格式如下所示。

          String a=new String( );

上面这行代码创建了一个名为String的类,并把它赋给变量,但它此时是一个空的字符串。接下来就为这个字符串赋值,赋值代码如下所示。

          a="I am a person Chongqing"

在Java程序中,我们将上述两句代码合并,就可以产生一种简单的字符串表示方法。

          String s=new String ("I am a person Chongqing");

除了上面的表示方法,还有表示字符串的如下一种形式。

          String s= ("I am a person Chongqing");

实例3-16

初始化一个字符串

源码路径:daima\3\Stringone.java

实例文件Stringone.java的主要实现代码如下所示。

          public static void main(String[] args) {
          ①       String str = "上邪";
          ②       System.out.println("OK");
          ③       String cde = "别人笑我太疯癫";
          ④       System.out.println(str + cde);
          }

拓展范例及视频二维码

范例3-16-01:格式化一个字符串

源码路径:演练范例\3-16-01\

范例3-16-02:扩展赋值运算符的功能

源码路径:演练范例\3-16-02\

行①定义一个字符串变量str,设置str的初始值是“上邪”。

行②使用println()函数输出字符串“OK”。

行③定义一个字符串变量cde,设置cde的初始值是“别人笑我太疯癫”。

行④使用println()函数输出字符串str和cde的组合。

执行后的结果如图3-18所示。

图3-18 执行结果

注意:字符串并不是原始的数据类型,而是一种复杂的数据类型,对它进行初始化的方法不止一种,但也没有规定哪种方法最优秀,用户可以根据自己的习惯使用。

3.4.2 String类

在Java程序中可以使用String类来操作字符串,在该类中有许多方法可以供程序员使用。

1.索引

在Java程序中,通过索引函数charAt()可以返回字符串中指定索引的位置。读者需要注意的是,这里的索引数字从零开始,使用格式如下所示。

          public char charAt(int index)

2.追加字符串

追加字符串函数concat()的功能是在字符串的末尾添加字符串,追加字符串是一种比较常用的操作,具体语法格式如下所示。

          Public String concat (String S)

实例3-17

使用索引方法

源码路径:daima\3\suoyin.java

实例文件suoyin.java的主要实现代码如下所示。

          public class suoyin {
              public static void main(String args[]){
          ①    String x="dongjiemeili";
          ②    System.out.println(x.charAt(5));
              }
          }

拓展范例及视频二维码

范例3-17-01:使用追加方法

源码路径:演练范例\3-17-01\

范例3-17-02:货币金额的大写形式

源码路径:演练范例\3-17-02\

行①定义一个字符串变量x,设置x的初始值是“dongjiemeili”。

行②使用println()函数输出字符串变量x中索引值为5的字母。因为下标从“0”开始,所以初学者可能会理解为字母“j”,可真正的结果并不是,下标为“5”,实际上是第6个字母。执行后的结果如图3-19所示。

图3-19 执行结果

3.比较字符串

比较字符串函数equalsIgnoreCase()的功能是对两个字符串进行比较,看是否相同。如果相同,返回一个值true;如果不相同,返回一个值false。格式如下。

          public Boolean equalsIgnoreCase(String s)

4.取字符串长度

在String类中有一个方法可以获取字符串的长度,语法格式如下所示。

          public int length ( )

实例3-18

使用字符串比较方法

源码路径:daima\3\bijiao.java

实例文件bijiao.java的主要实现代码如下所示。

          public static void main(String args[]){
              ①       String x="student";
              ②       String xx="STUDENT";
              ③       String y="student";
              ④       String z="T";
              ⑤       System.out.println(x.equalsIgnoreCase(xx));
              ⑥       System.out.println(x.equalsIgnoreCase(y));
              ⑦       System.out.println(x.equalsIgnoreCase(z));
          }

拓展范例及视频二维码

范例3-18-01:使用求字符串长度的方法

源码路径:演练范例\3-18-01\

范例3-18-02:用String类格式化当前日期

源码路径:演练范例\3-18-02\

行①②③④定义4个字符串变量x、xx、y和z,设置x的初始值是“student”,设置xx的初始值是“STUDENT”,设置y的初始值是“student”,设置z的初始值是“T”。

行⑤使用函数equalsIgnoreCase()比较x和xx的值是否相等,然后使用println()函数输出比较结果。

行⑥使用函数equalsIgnoreCase()比较x和y的值是否相等,然后使用println()函数输出比较结果。

行⑦使用函数equalsIgnoreCase()比较x和z的值是否相等,然后使用println()函数输出比较结果。

执行后的结果如图3-20所示。

图3-20 比较字符串的结果

5.替换字符串

替换是两个动作,第一个是查找,第二个是替换。在Java中实现替换字符串的方法十分简单,只需要使用replace()方法即可实现。此方法的声明格式如下所示。

          public String replace (char old, char new)

6.字符串的截取

有时候,经常需要从长的字符串中截取一段字符串,此功能可以通过substring()方法实现,此方法有两种语法格式。

第一种格式如下。

          public String substring(int begin)

第二种格式如下。

          public String substring (int begin, int end)

实例3-19

使用字符串替换方法

源码路径:daima\3\Tihuan.java

实例文件Tihuan.java的主要实现代码如下所示。

          public static void main(String args[]){
          ①        String x="我想我要走了";
          ②        String y=x.replace(’走’, ’去’);
          ③        System.out.println(y);
          }

拓展范例及视频二维码

范例3-19-01:使用字符串截取方法

源码路径:演练范例\3-19-01\

范例3-19-02:字符串的大小写转换

源码路径:演练范例\3-19-02\

行①定义一个字符串变量x,设置x的初始值是“我想我要走了”。

行②定义一个字符串变量y,设置y的初始值是将x中的“走”替换为“去”之后的值。

行③使用println()函数输出变量y的值。执行后的结果如图3-21所示。

图3-21 替换字符串的结果

7.字符串大小写互转

许多时候需要对字符串中的字母进行转换,在String类里,用户可以使用专用方法进行互换。将大写字母转换成小写字母的方法的语法格式如下所示。

          public String toLowerCase ( )

将小写字母转换成大写字母的方法的语法格式如下所示。

          Public String toUpperCase ( )

8.消除字符串中的空格字符

在字符串中可能有空白字符,有时在一些特定的环境中并不需要这样的空白字符,此时我们可以使用trim()方法去除空白,此方法的语法格式如下所示。

          pbulic String trim ( )

实例3-20

将大写字母转换成小写字母

源码路径:daima\3\Daxiao1.java

实例文件Daxiao1.java的主要实现代码如下所示。

          public static void main(String args[]){
          ①        String x="I LOVE YoU! ! ";
                    //字母大小写转换
          ②        String y=x.toLowerCase();
          ③        System.out.println(x);
          ④        System.out.println(y);
          }

拓展范例及视频二维码

范例3-20-01:将小写字母转换成大写字母

源码路径:演练范例\3-20-01\

范例3-20-02:使用trim()方法

源码路径:演练范例\3-20-02\

行①定义一个字符串变量x,设置x的初始值是“I LOVE YoU!!”。

行②定义一个字符串变量y,设置y的初始值是将x中的字母都转换为小写后的值。

行③④使用println()函数分别输出变量x和y的值。执行后的结果如图3-22所示。

图3-22 执行结果

3.4.3 StringBuffer类

StringBuffer类是Java中另一个重要的操作字符串的类,当需要对字符串进行大量的修改时,使用StringBuffer类是最佳选择。接下来将详细讲解StringBuffer类中的常用方法。

1.追加字符

在StringBuffer类中实现追加字符功能的方法的语法格式如下所示。

          public synchronized StringBuffer append(boolean b)

2.插入字符

前面的字符追加方法总是在字符串的末尾添加内容,倘若需要在字符串中添加内容,就需要使用方法insert(),语法格式如下所示。

          public synchronized StringBuffer insert(int offset, String s)

上述语法格式的含义是:将第2个参数的内容添加到第1个参数指定的位置,换句话说,第1个参数表示要插入的起始位置,第2个参数是需要插入的内容,可以是包括String在内的任何数据类型。

3.颠倒字符

字符颠倒方法能够将字符颠倒,例如“我是谁”,颠倒过来就变成“谁是我”,很多时候需要颠倒字符。字符颠倒方法reverse()的语法格式如下所示。

          public synchronized StringBuffer reverse( )

实例3-21

使用字符追加函数

源码路径:daima\3\Zhui1.java

实例文件Zhui1.java的主要实现代码如下所示。

        public static void main(String args[]){
        ①    StringBuffer x1 = new StringBuffer("金山
    WPS办公");
        ②    x1.append(",中国人的选择");
        ③    System.out.println(x1);
        ④    StringBuffer x2 = new StringBuffer("WPS");
        ⑤    x2.append(2009);
        ⑥    System.out.println(x2);
        }

拓展范例及视频二维码

范例3-21-01:替换指定的文本字符

源码路径:演练范例\3-21-01\

范例3-21-02:使用字符颠倒方法reverse()

源码路径:演练范例\3-21-02\

行①定义StringBuffer对象x1,设置x1的初始值是“金山WPS办公”。

行②在x1的后面使用函数append()追加字符串“中国人的选择”。

行③使用println()函数输出x1的值。

行④定义StringBuffer对象x2,设置x2的初始值是“WPS”。

行⑤在x2的后面使用函数append()追加数字“2009”。

行⑥使用println()函数输出x2的值。执行后的结果如图3-23所示。

图3-23 追加字符的结果