Java编程基础(6)

作者: 疯狂平头哥 | 来源:发表于2018-11-28 20:20 被阅读7次

    Java基础知识:Java字符串的处理

    一般程序需要处理大量文本数据,Java 语言的文本数据被保存为字符或字符串类型。关于字符及字符串的操作主要用到 String 类和 StringBuffer 类,如连接、修改、替换、比较和查找等。

    字符串是 Java 程序中经常处理的对象之一,因此如果字符串运用得不好,将影晌到程序的运行效率。

    字符串学习要点

    掌握定义字符串的方法

    掌握字符串之间以及与其他类型数据转换的方法

    掌握获取字符串长度的方法

    掌握字符串的大小写转换

    掌握如何提取和分割字符串

    掌握如何替换和比较字符串

    熟悉 StringBuffer 类操作字符串的方法

    了解正则表达式如何操作字符串 

    1.Java定义字符串

    在 Java 中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是 String 对象,如字符串"Hello"在编译后即成为 String 对象。因此也可以通过创建 String 类的实例来定义字符串。

    不论使用哪种形式创建字符串,字符串对象一旦被创建,其值是不能改变的,但可以使用其他变量重新赋值的方式进行更改。

    直接定义字符串

    直接定义字符串是指使用双引号表示字符串中的内容,例如"Hello Java"、"Java 编程"等。具体方法是用字符串常量直接初始化一个 String 对象,示例如下:

    String str="Hello Java";

    或者

    String str;

    str="Heilo Java";

    注意:字符串变量必须经过初始化才能使用。

    使用 String 类定义

    在 Java 中每个双引号定义的字符串都是一个 String 类的对象。因此,可以通过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中,作用域是 final。

    String 类的构造方法有多种重载形式,每种形式都可以定义字符串。下面介绍最常用的几种形式。

    1. String()

    初始化一个新创建的 String 对象,表示一个空字符序列。

    2. String(String original)

    初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创建的字符串是该参数字符串的副本。例如:

    String str1=newString("Hello Java");

    String str2=newString(str1);

    这里 str1 和 str2 的值是相等的。

    3. String(char[ ]value)

    分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被复制,后续对字符数组的修改不会影响新创建的字符串。例如:

    chara[]={'H','e','l','l','0'};

    String sChar=newString(a);

    a[1]='s';

    上述 sChar 变量的值是字符串"Hello"。 即使在创建字符串之后,对 a 数组中的第 2 个元素进行了修改,但未影响 sChar 的值。

    4. String(char[] value,int offset,int count)

    分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被赋值,后续对字符数组的修改不会影响新创建的字符串。例如:

    chara[]={'H','e','l','l','o'};

    String sChar=newString(a,1,4);

    a[1]='s';

    上述 sChar 变量的值是字符串"Hello"。该构造方法使用字符数组中的部分连续元素来创建字符串对象。offset 参数指定起始索引值,count 指定截取元素的个数。创建字符串对象后,即使在后面修改了 a 数组中第 2 个元素的值,对 sChar 的值也没有任何影响。

    2.Java连接字符串

    对于已经定义的字符串,可以对其进行各种操作。连接多个字符串是字符串操作中最简单的一种。通过字符串连接,可以将两个或多个字符串、字符、整数和浮点数等类型的数据连成一个更大的字符串。

    使用连接运算符

    “+”运算符是最简单、最快捷,也是使用最多的字符串连接方式。在使用“+”运算符连接字符串和 int 型(或 double 型)数据时,“+”将 int(或 double)型数据自动转换成 String 类型。

    上述代码首先创建了 3 个包含有 5 个元素的数组,然后循环遍历数组,遍历的次数为 5。在循环体内输出学号、姓名和课程,并使用“+”运算符连接班级最终形成一个字符串。

    当定义的字符串值的长度过长时,可以分作多行来写,这样比较容易阅读。

    使用 concat() 方法

    在 Java 中,String 类的 concat() 方法实现了将一个字符串连接到另一个字符串的后面。concat() 方法语法格式如下:

    字符串 1.concat(字符串 2);

    执行结果是字符串 2 被连接到字符串 1 后面,形成新的字符串。

    连接其他类型数据

    前面介绍的例子都是字符串与字符串进行连接,其实字符串也可同其他基本数据类型进行连接。如果将字符串同这些数据类型数据进行连接,此时会将这些数据直接转换成字符串。

    上述代码实现的是将字符串变量 book 与整型变量 price 和浮点型变量 readtime 相连后将结果输出。在这里定义的 price 和 readtime 都不是字符串,当它们与字符串相连时会自动调用自身的 toString() 方法将其转换成字符串形式,然后再参与连接运算。

    注意:只要“+”运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式,所以应该谨慎地将其他数据类型与字符串相连,以免出现意想不到的结果。

    3.Java获取字符串长度(length())

    在 Java 中,要获取字符串的长度,可以使用 String 类的 length() 方法,其语法形式如下:

    字符串名.length();

    上述代码将用户输入的密码保存到字符串变量 pass 中,再调用 pass.length() 方法将长度保存到 length 变量,然后使用 if 语句根据长度给出提示。

    4.Java转换大小写(toLowerCase()和toUpperCase())

    String 类的 toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响。语法格式如下:

    字符串名.toLowerCase()    //将字符串中的字母全部转换为小写,非字母不受影响

    toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。语法格式如下:

    字符串名.toUpperCase()    //将字符串中的字母全部转换为大写,非字母不受影响

    程序运行结果为:

    5.Java去除空格(trim())

    字符串中存在的首尾空格一般情况下都没有任何意义,如字符串" Hello",但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。

    trim() 方法的语法形式如下:

    字符串名.trim()

    使用 trim() 方法的示例如下:

    String str=" hello ";

    System.out.println(str.length());//输出 9

    System.out.println(str.trim().length());//输出 5

    从该示例中可以看出,字符串中的每个空格占一个位置,直接影响了计算字符串的长度。

    技巧

    如果不确定要操作的字符串首尾是否有空格,最好在操作之前调用该字符串的 trim() 方法去除首尾空格,然后再对其进行操作。

    相关文章

      网友评论

      本文标题:Java编程基础(6)

      本文链接:https://www.haomeiwen.com/subject/cwazqqtx.html