引用


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/

最新文章

  1. Jmeter教程 简单的压力测试
  2. 【总结】C# 设置委托的机理和简要步骤
  3. RSS与公众号
  4. Seajs是什么及sea.js 由来,特点以及优势
  5. firefox浏览器不能使用window.close的解决方案
  6. 【转载】 Python 调整屏幕分辨率
  7. SQL数据库基础(六)
  8. iOS 模仿微信的照片选择器
  9. Poj(2349),最小生成树的变形
  10. BIG5编码表
  11. 简单易学的机器学习算法——EM算法
  12. 宇宙【全7季】【合集】【蓝光1080P】【历史频道】
  13. hdu 2818 Building Block (带权并查集,很优美的题目)
  14. Python正则匹配字母大小写不敏感在读xml中的应用
  15. Asp.Net Web API 2(CRUD操作)第二课
  16. android笔记20170116
  17. 数据库 【redis】 命令大全
  18. Flume调优
  19. vue-devtools chrome 开发工具
  20. 探索Java8:Stream的使用

热门文章

  1. Jquery用途
  2. POJ3321 Apple Tree(DFS序)
  3. HDU 1010 (DFS搜索+奇偶剪枝)
  4. c++ auto_ptr 智能指针
  5. Java之美[从菜鸟到高手演变]之HashMap、HashTable(转载)
  6. 【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)
  7. libtiff 生成48位色tif图片
  8. Grasshopper 2.0 MP Color FireWire 1394b (Sony ICX274)
  9. easyui datagrid 增删改查示例
  10. 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)