【Java 进阶篇】【第一课】String类

引用



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

创建



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

        String s = "Hello World!";
        System.out.println(s);           

操作



可以用+实现字符串的连接(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!"

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!",原字符串对象将被垃圾回收。

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/

时间: 2024-12-21 02:26:16

【Java 进阶篇】【第一课】String类的相关文章

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对比

本文主要介绍String类.StringBuffer类.StringBuilder类的区别  : 一.概述 (一)String 字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法完全相同. 区别在于StringBuffer每个方法中前面添加了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可变量,

Java技术——你真的了解String类的intern()方法吗

0.引言 转载请注明出处:http://write.blog.csdn.net/postedit/52291082 什么都先不说,先看下面这个引入的例子: String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1.intern() == str1); System.out.println(str1 == "SEUCalvin"); 本人JDK版本1

Java进阶篇 设计模式之十四 ----- 总结篇

前言 本篇是讲述之前学习设计模式的一个总结篇,其目的是为了对这些设计模式的进行一个提炼总结,能够通过查看看此篇就可以理解一些设计模式的核心思想. 设计模式简介 什么是设计模式 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结. 为什么使用设计模式 使用设计模式是为了重用代码.让代码更容易被他人理解.保证代码可靠性. 设计模式类型 设计模式有23种类型.按照主要分类可以分为三大类: 一.创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 n

java基础学习——19、String类

之前的Java基础系列中讨论了Java最核心的概念,特别是面向对象的基础.在Java进阶中,我将对Java基础进行补充,并转向应用层面. 大部分编程语言都能够处理字符串(String).字符串是有序的字符集合,比如"Hello World!".在Java中,字符串被存储为String类对象.调用字符串对象的方法,可以实现字符串相关的操作. String类包含在java.lang包中.这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class).我

Java 1.7.0_06中String类内部实现的一些变化【转】

原文链接: java-performance 翻译: ImportNew.com- 夏千林译文链接: http://www.importnew.com/7656.html ChangeLog: 2013年11月19日,更新了Java8版本中的变化. 013年11月28日,更新了Java 7u40版本中的变化.(感谢Sunny Chan以及他的同事提示我关注新版本的JDK) 共享一个基础char[]  原先的String类中有4个非静态变量: char[] value用于存储字符串. int of

Java进阶篇设计模式之七 ----- 享元模式和代理模式

前言 在上一篇中我们学习了结构型模式的组合模式和过滤器模式.本篇则来学习下结构型模式最后的两个模式, 享元模式和代理模式. 享元模式 简介 享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式. 用通俗的话来说就是进行共用.生活中也有一些例子,比如之前很火的共享单车,更早之前的图书馆,编程中经常用的String类,数据库连接池等等.当然,享元模式主要的目的是复用,如果该对象没有的话,就会进行创建. 享

java--努力且进步着:面向对象(1)《java进阶篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 面向对象 主要内容:<  思想概述.设计实现.成员变量和局部变量.类名作为形参.匿名对象.封装.private关键字.this关键字 > 1 面向对象思想概述 面向对象是基于面向过程的编程思想 面向对象思想特点 是一种更符合我们思想习惯的思想 可以将复杂的事情简单化 将我们从执行者变成了指挥者 2 面向对象开发设计以及特征 软件整个的开发流程: 1.分析: 2.设计: 3.编程(开发): 需

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对照

本文主要介绍String类.StringBuffer类.StringBuilder类的差别  : 一.概述 (一)String 字符串常量.可是它具有不可变性,就是一旦创建,对它进行的不论什么改动操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法全然同样. 差别在于StringBuffer每一个方法中前面加入了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可

Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)

1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) { getCount("IamHandsome666"); } public static void getCount(String str) { int upper = 0; int lower = 0; int digit = 0; for (int i = 0; i < str