开课吧Java课堂:字符串如何处理?
像大多数其他计算机语言一样,Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。
将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。
例如,Java语言中有多种方法用于比较两个字符串,搜索子字符串,连接字符串以及改变字符串中字母的大小写。也有许多途径可以构造出String对象,使得当需要时,能够容易得到字符串。
有些出乎意料的是当创建一个String对象时,被创建的字符串是不能被改变的。这也就是说一旦一个String对象被创建,将无法改变那些组成字符串的字符。表面上看起来,这好像是一个严格的约束。然而事实并非如此。
你仍能够执行各种类型的字符串操作。区别在于每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更高效。
对于那些想得到改变的字符串的情况,有一个叫做StringBuffer的String类的友类。它的对象包含了在创建之后可被改变的字符串。
String类和StringBuffer类都在java.lang中定义。因此它们可以自动的被所有程序利用。
两者均被说明为final,这意味着两者均不含子类。从而使得某些增强性能的优化可作用于普通字符串操作。
最后需要指明一点:包含在类型String对象中的字符串的不可改变意味着String实例一旦被建立,它的内容将不能被改变。然而在任何时候,被说明为String引用的变量可以被改变以指向另外的一些字符串(String)对象。
开课吧Java课堂:字符串如何处理?相关推荐
- 开课吧Java课堂:特殊的字符串如何操作,字符串如何连接
字符串的长度是指其所包含的字符的个数.调用如下的length( )方法可以得到这个值: int length( ) 下面的程序段输出"3",因为在字符串s中有三个字符. char ...
- 开课吧Java课堂之什么是搜索字符串
String类提供了两个方法,允许在字符串中搜索指定的字符或子字符串: · indexOf( ) 搜索字符或子字符串首次出现. · lastIndexOf( ) 搜索字符或子字符串的最后一次出现. 这 ...
- 开课吧Java课堂:如何使用比较函数?
下面是一个说明定制的比较函数能力的例子.该例子实现compare( )方法以便它按正常顺序的逆向进行操作.因此,它使得一个树集合按逆向的顺序进行存储. // Use a custom comparat ...
- 开课吧Java课堂:什么是ArrayList类
ArrayList类扩展AbstractList并执行List接口.ArrayList支持可随需要而增长的动态数组.在Java中,标准数组是定长的.在数组创建之后,它们不能被加长或缩短,这也就意味着你 ...
- 开课吧Java课堂:StringBuffer全解,非常详细
StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类.正如你所知,字符串(String)表示了定长,不可变的字符序列.相反,StringBuffer表示了可变长的和可写的 ...
- 开课吧Java课堂:如何利用valueOf( )方法实现数据转换
valueOf( )方法将数据的内部格式转换为可读的形式.它是一种静态方法,对于所有Java内置的类型,在字符串(String)内被重载,以便每一种类型都能被转换成字符串. valueOf( )方法还 ...
- 开课吧Java课堂:小应用程序基础是什么
小应用程序是访问internet服务器,在internet上传播的,自动安装的,作为部分Web文档运行的小应用程序.当小应用程序到达客户端,它被限制访问资源,以使它能够在不受病毒威胁和破坏数据完整性的 ...
- 开课吧Java课堂:什么是流?如何运用字节流和字符流?
Java程序通过流来完成输入/输出.流是生产或消费信息的抽象.流通过Java的输入/输出系统与物理设备链接.尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式.这样,相同的输入/输出类和方法 ...
- 开课吧Java课堂之如何使用FilenameFilter
你总是希望能够限制由list( )方法返回的文件数目,使它仅返回那些与一定的文件名方式或者过滤(filter)相匹配的文件.为达到这样的目的,必须使用list( )的第二种形式: String[ ] ...
最新文章
- Transformer新玩法登Nature子刊
- android获取图片缩略图,Android系获取图片和视频的缩略图
- 深度学习--感知机讲解
- 从无头单链表中删除节点 结构之法 4
- ffmpeg学习1 音视频基本概念
- getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getSchemeSpecificPart()返回内容解析
- 10 亿产业基金加持,让精准定位在物联网应用中实现无限可能!
- SQL Server 日期+4位流水号
- CPDA数据分析师:为什么Python在数据科学方面超越R和SQL?
- 在HTML文字标签i什么效果,html的i标签有什么作用
- 工业循环水过滤浅层介质过滤器(浅层砂过滤器)介绍
- 医学图像自适应计算图像窗宽窗位技巧
- 体会现实生活的两个月(上)
- 商标主要特征是什么?商标注册申请流程是什么?
- linux下常用软件列表
- open3d之体素化Voxelization有关函数详情(笔记6)
- 深度学习训练遇到的坑(一)
- spring源码解析(一)迈向学习spring之路
- python开根号函数图像,使用matplotlib / python的平方根刻度
- Flutter —— dio
热门文章
- WOE(weight of evidence, 证据权重)
- mac nginx 安装及PHP配置
- 实例练习----电影天堂抓取下载链接
- 深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)(转)...
- 新增字段属性“是否转义”,提高列表展示性能
- Mutex对象是操作系统级?
- Object.defineProperty 接口浏览器实现的bug.和疑惑
- C+++之insert()
- 简述L4无人驾驶的发展
- 树莓派4B安装Ubuntu20.04