Java进阶教程之String类

 更新时间:2014年09月01日 12:43:41   投稿:junjie   我要评论

这篇文章主要介绍了Java进阶教程之String类,String类对象是不可变对象(immutable object),String类是唯一一个不需要new关键字来创建对象的类,需要的朋友可以参考下

之前的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!"),会重复创建出一个字符串对象。

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 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文档中有丰富的内容,你通过下面链接概览:

http://docs.oracle.com/javase/6/docs/api/

相关文章

  • struts2标签总结_动力节点Java学院整理

    struts2标签总结_动力节点Java学院整理

    这篇文章主要为大家详细总结了struts2标签的使用方法,和学习资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • java利用jacob将word转pdf

    java利用jacob将word转pdf

    这篇文章主要为大家详细介绍了java利用jacob将word转pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 全面解读Java中的枚举类型enum的使用

    全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作金沙国际官网时的实例,需要的朋友可以参考下
    2016-04-04
  • Java基础知识之Java语言概述

    Java基础知识之Java语言概述

    这篇文章主要介绍了Java基础知识之Java语言概述,本文介绍了Java语言相关的基础知识、历史介绍、主要应用方向等内容,需要的朋友可以参考下
    2015-03-03
  • java基于TCP协议实现聊天程序

    java基于TCP协议实现聊天程序

    这篇文章主要为大家详细介绍了java基于TCP协议实现聊天程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • java操作cookie示例(删除cookie)

    java操作cookie示例(删除cookie)

    这篇文章主要介绍了java操作cookie示例,包括设置Cookie、读取Cookie、删除Cookie,需要的朋友可以参考下
    2014-02-02
  • java获取中文拼音首字母的实例

    java获取中文拼音首字母的实例

    下面小编就为大家带来一篇java获取中文拼音首字母的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java使用代理进行网络连接方法示例

    Java使用代理进行网络连接方法示例

    这篇文章主要介绍了Java使用代理进行网络连接方法示例,内容十分详细,需要的朋友可以参考下。
    2017-09-09
  • java Unsafe详细解析

    java Unsafe详细解析

    Unsafe为我们提供了访问底层的机制,这种机制仅供java核心类库使用,而不应该被普通用户使用。但是,为了更好地了解java的生态体系,我们应该去学习它,去了解它,不求深入到底层的C/C++代码,但求能了解它的基本功能。下面小编来和大家一起学习
    2019-05-05
  • Java 使用IO流实现大文件的分割与合并实例详解

    Java 使用IO流实现大文件的分割与合并实例详解

    这篇文章主要介绍了Java 使用IO流实现大文件的分割与合并实例详解的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论