像大多数其他计算机语言一样,Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。

将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。

例如,Java语言中有多种方法用于比较两个字符串,搜索子字符串,连接字符串以及改变字符串中字母的大小写。也有许多途径可以构造出String对象,使得当需要时,能够容易得到字符串。

有些出乎意料的是当创建一个String对象时,被创建的字符串是不能被改变的。这也就是说一旦一个String对象被创建,将无法改变那些组成字符串的字符。表面上看起来,这好像是一个严格的约束。然而事实并非如此。

你仍能够执行各种类型的字符串操作。区别在于每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更高效。

对于那些想得到改变的字符串的情况,有一个叫做StringBuffer的String类的友类。它的对象包含了在创建之后可被改变的字符串。

String类和StringBuffer类都在java.lang中定义。因此它们可以自动的被所有程序利用。

两者均被说明为final,这意味着两者均不含子类。从而使得某些增强性能的优化可作用于普通字符串操作。

最后需要指明一点:包含在类型String对象中的字符串的不可改变意味着String实例一旦被建立,它的内容将不能被改变。然而在任何时候,被说明为String引用的变量可以被改变以指向另外的一些字符串(String)对象。

开课吧Java课堂:字符串如何处理?相关推荐

  1. 开课吧Java课堂:特殊的字符串如何操作,字符串如何连接

    字符串的长度是指其所包含的字符的个数.调用如下的length( )方法可以得到这个值: int length( ) 下面的程序段输出"3",因为在字符串s中有三个字符. char ...

  2. 开课吧Java课堂之什么是搜索字符串

    String类提供了两个方法,允许在字符串中搜索指定的字符或子字符串: · indexOf( ) 搜索字符或子字符串首次出现. · lastIndexOf( ) 搜索字符或子字符串的最后一次出现. 这 ...

  3. 开课吧Java课堂:如何使用比较函数?

    下面是一个说明定制的比较函数能力的例子.该例子实现compare( )方法以便它按正常顺序的逆向进行操作.因此,它使得一个树集合按逆向的顺序进行存储. // Use a custom comparat ...

  4. 开课吧Java课堂:什么是ArrayList类

    ArrayList类扩展AbstractList并执行List接口.ArrayList支持可随需要而增长的动态数组.在Java中,标准数组是定长的.在数组创建之后,它们不能被加长或缩短,这也就意味着你 ...

  5. 开课吧Java课堂:StringBuffer全解,非常详细

    StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类.正如你所知,字符串(String)表示了定长,不可变的字符序列.相反,StringBuffer表示了可变长的和可写的 ...

  6. 开课吧Java课堂:如何利用valueOf( )方法实现数据转换

    valueOf( )方法将数据的内部格式转换为可读的形式.它是一种静态方法,对于所有Java内置的类型,在字符串(String)内被重载,以便每一种类型都能被转换成字符串. valueOf( )方法还 ...

  7. 开课吧Java课堂:小应用程序基础是什么

    小应用程序是访问internet服务器,在internet上传播的,自动安装的,作为部分Web文档运行的小应用程序.当小应用程序到达客户端,它被限制访问资源,以使它能够在不受病毒威胁和破坏数据完整性的 ...

  8. 开课吧Java课堂:什么是流?如何运用字节流和字符流?

    Java程序通过流来完成输入/输出.流是生产或消费信息的抽象.流通过Java的输入/输出系统与物理设备链接.尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式.这样,相同的输入/输出类和方法 ...

  9. 开课吧Java课堂之如何使用FilenameFilter

    你总是希望能够限制由list( )方法返回的文件数目,使它仅返回那些与一定的文件名方式或者过滤(filter)相匹配的文件.为达到这样的目的,必须使用list( )的第二种形式: String[ ] ...

最新文章

  1. Transformer新玩法登Nature子刊
  2. android获取图片缩略图,Android系获取图片和视频的缩略图
  3. 深度学习--感知机讲解
  4. 从无头单链表中删除节点 结构之法 4
  5. ffmpeg学习1 音视频基本概念
  6. getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getSchemeSpecificPart()返回内容解析
  7. 10 亿产业基金加持,让精准定位在物联网应用中实现无限可能!
  8. SQL Server 日期+4位流水号
  9. CPDA数据分析师:为什么Python在数据科学方面超越R和SQL?
  10. 在HTML文字标签i什么效果,html的i标签有什么作用
  11. 工业循环水过滤浅层介质过滤器(浅层砂过滤器)介绍
  12. 医学图像自适应计算图像窗宽窗位技巧
  13. 体会现实生活的两个月(上)
  14. 商标主要特征是什么?商标注册申请流程是什么?
  15. linux下常用软件列表
  16. open3d之体素化Voxelization有关函数详情(笔记6)
  17. 深度学习训练遇到的坑(一)
  18. spring源码解析(一)迈向学习spring之路
  19. python开根号函数图像,使用matplotlib / python的平方根刻度
  20. Flutter —— dio

热门文章

  1. WOE(weight of evidence, 证据权重)
  2. mac nginx 安装及PHP配置
  3. 实例练习----电影天堂抓取下载链接
  4. 深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)(转)...
  5. 新增字段属性“是否转义”,提高列表展示性能
  6. Mutex对象是操作系统级?
  7. Object.defineProperty 接口浏览器实现的bug.和疑惑
  8. C+++之insert()
  9. 简述L4无人驾驶的发展
  10. 树莓派4B安装Ubuntu20.04