欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java进阶教程之String类

程序员文章站 2024-03-01 08:31:46
之前的java基础系列中讨论了java最核心的概念,特别是面向对象的基础。在java进阶中,我将对java基础进行补充,并转向应用层面。 大部分编程语言都能够处理字符串(...

之前的java基础系列中讨论了java最核心的概念,特别是面向对象的基础。在java进阶中,我将对java基础进行补充,并转向应用层面。

大部分编程语言都能够处理字符串(string)。字符串是有序的字符集合,比如"hello world!"。在java中,字符串被存储为string类对象。调用字符串对象的方法,可以实现字符串相关的操作。

string类包含在java.lang包中。这个包会在java启动的时候自动import,所以可以当做一个内置类(built-in class)。我们不需要显式的使用import引入string类。

创建字符串

我们之前使用类来创建对象。需要注意的时候,创建string类对象不需要new关键字。比如:

复制代码 代码如下:

public class test
{
    public static void main(string[] args)
    {
        string s = "hello world!";
        system.out.println(s);                    
    }
}

实际上,当你写出一个"hello world"表达式时,内存中就已经创建了该对象。如果使用new string("hello world!"),会重复创建出一个字符串对象。

Java进阶教程之String类

an object

string类是唯一一个不需要new关键字来创建对象的类。使用的时候需要注意。

字符串操作

可以用+实现字符串的连接(concatenate),比如:

复制代码 代码如下:

"abc" + s

字符串的操作大都通过字符串的相应方法实现,比如下面的方法:

复制代码 代码如下:

方法                               效果

s.length()                        返回s字符串长度

s.charat(2)                       返回s字符串中下标为2的字符

s.substring(0, 4)                 返回s字符串中下标0到4的子字符串

s.indexof("hello")                返回子字符串"hello"的下标

s.startswith(" ")                 判断s是否以空格开始

s.endswith("oo")                  判断s是否以"oo"结束

 

s.equals("good world!")           判断s是否等于"good world!"

                                  ==只能判断字符串是否保存在同一位置。需要使用equals()判断字符串的内容是否相同。

s.compareto("hello nerd!")        比较s字符串与"hello nerd!"在词典中的顺序,

                                  返回一个整数,如果<0,说明s在"hello nerd!"之前;

                                              如果>0,说明s在"hello nerd!"之后;

                                              如果==0,说明s与"hello nerd!"相等。

s.trim()                          去掉s前后的空格字符串,并返回新的字符串

s.touppercase()                   将s转换为大写字母,并返回新的字符串

s.tolowercase()                   将s转换为小写,并返回新的字符串

s.replace("world", "universe")    将"world"替换为"universe",并返回新的字符串

不可变对象

string类对象是不可变对象(immutable object)。程序员不能对已有的不可变对象进行修改。我们自己也可以创建不可变对象,只要在接口中不提供修改数据的方法就可以。

然而,string类对象确实有编辑字符串的功能,比如replace()。这些编辑功能是通过创建一个新的对象来实现的,而不是对原有对象进行修改。比如:

复制代码 代码如下:

s = s.replace("world", "universe");

右边对s.replace()的调用将创建一个新的字符串"hello universe!",并返回该对象(的引用)。通过赋值,引用s将指向该新的字符串。如果没有其他引用指向原有字符串"hello world!",原字符串对象将被垃圾回收。

Java进阶教程之String类

不可变对象

java api

java提供了许多功能强大的包。java学习的一个重要方面是了解这些包以及其中包含的api(application programming interface)。string类定义在java.lang.string。你可以查询下面的oracle网址,来找到该类的官方文档:

http://docs.oracle.com/javase/6/docs/api/java/lang/string.html

该文档中包含了string类最全面的介绍。

事实上,api文档中有丰富的内容,你通过下面链接概览: