Java编程那些事儿75——String类使用

9.5.3 String和StringBuffer

String和StringBuffer类都是代表字符串,也就是任意多个字符组成的序列。程序需要存储的大量文字一般都使用字符串进行代表。在这两个类中,包含了大部分关于字符串操作的方法,在实际操作字符串时,可以首先查阅这两个类中的方法。

String和StringBuffer虽然都代表字符串,但是由于两个类内部实现的区别,所以一般把String看成不可变字符串,而把StringBuffer看成可变字符串,对于String的每次改变(例如字符串连接等)都会生成一个新的字符串,比较浪费内存,而StringBuffer每次都改变自身,不生成新的对象,比较节约内存。

下面就详细介绍一下String和StringBuffer的实际使用。

9.5.3.1 String类

1、String对象的初始化

由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下:

String s = “abc”;

s = “Java语言”;

其实按照面向对象的标准语法,其格式应该为:

String s = new String(“abc”);

s = new String(“Java语言”);

只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。例如String s = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s申请的空间。

其它的构造方法的参数,可以参看String类的API文档。

2、字符串的常见操作

a、charAt方法

该方法的作用是按照索引值(规定字符串中第一个字符的索引值是0,第二个字符的索引值是1,依次类推),获得字符串中的指定字符。例如:

String s = “abc”;

char c = s.chatAt(1);

则变量c的值是’b’。

b、compareTo方法

该方法的作用是比较两个字符串的大小,比较的原理是依次比较每个字符的字符编码。首先比较两个字符串的第一个字符,如果第一个字符串的字符编码大于第二个的字符串的字符编码,则返回大于0的值,如果小于则返回小于0的值,如果相等则比较后续的字符,如果两个字符串中的字符编码完全相同则返回0。

例如:

String s = “abc”;

String s1 = “abd”;

int value = s.compareTo(s1);

则value的值是小于0的值,即-1。

在String类中还存在一个类似的方法compareToIgnoreCase,这个方法是忽略字符的大小写进行比较,比较的规则和compareTo一样。例如:

String s = “aBc”;

String s1 = “ABC”;

int value = s. compareToIgnoreCase (s1);

则value的值是0,即两个字符串相等。

时间: 2024-08-22 15:15:14

Java编程那些事儿75——String类使用的相关文章

Java编程那些事儿76——StringBuffer类和System类

9.5.3.2 StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类. 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些. 在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能

Java编程那些事儿85——IO类体系

11.2 I/O类体系 在JDK API中,基础的IO类都位于java.io包,而新实现的IO类则位于一系列以java.nio开头的包名中,这里首先介绍java.io包中类的体系结构. 按照前面的说明,流是有方向的,则整个流的结构按照流的方向可以划分为两类: 1.输入流: 该类流将外部数据源的数据转换为流,程序通过读取该类流中的数据,完成对于外部数据源中数据的读入. 2.输出流: 该类流完成将流中的数据转换到对应的数据源中,程序通过向该类流中写入数据,完成将数据写入到对应的外部数据源中. 而在实

Java编程那些事儿52—方法声明

第七章 方法 方法(method),在面向过程的语言中称作函数(function),在汇编语言中称作子程序,是一个代码功能块,实现某个特定的功能.在实际的程序开发中,方法是一种基础的组织代码的方式.本部分就介绍方法相关的概念.相关语法以及实际使用时需要注意的问题. 7.1 方法概述 方法的概念来源于数学上的函数,在数学中,当数据具有一定的规律时,就是用一个函数来代码该数字的规律,例如f(n)=n则代表1.2.3.--这样的一个数列.在数学上n是参数,对于确定的n值只有一个f(n)的值和它对应.

Java编程那些事儿25—位运算符

4.5 二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符. 使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程.硬件编程等领域. 二进制运算符在数学上的意义比较有限. 在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进

Java编程那些事儿3——你适合学习程序设计吗?

 Java编程那些事儿3--你适合学习程序设计吗?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          程序设计是一个技术活,所以不是适合所有的人.现在很多人听说程序设计人员待遇如何如何的好,都一窝蜂的来学习程序,其实这个现象很不正常,因为程序不一定适合你.其实对于一个人来说,适合你的才是最好的.         就像现在很多小孩子都被家长逼着去学钢琴啊什么,有些小孩根本没有艺术细胞的,所以学习的效果就是差强人意了.         其实程序设计最需要

Java编程那些事儿4——如何学好程序设计?

  Java编程那些事儿4--如何学好程序设计?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          俗话说"兴趣是最好的老师",但是只靠兴趣是远远不够的,还需要付出艰辛的努力.程序设计是一种技能,需要在较短的时间内学会,就不能像学习汉语一样,通过十几年甚至更长的时间来学好,也不能像英语那样进行业余学习,以至很多大学毕业的人英语水平也不敢恭维,也达不到实用的程度.         那么如何学好程序设计呢?或者更现实一点,如何在短时间内成为一个

Java编程那些事儿1——序言

 序言          从大学毕业到现在,马上就六年了,这六年中从事过开发,也从事培训工作,相比而言,参加培训工作的时间要长一些.由于工作的特点,遇到了各种各样的学生,在学习编程时遇到了一系列的问题,也有很多迷茫的时候,希望通过编写本书,把相关的问题进行一下总结,把自己的经验和大家进行分享.当然由于一些知识也只是个人见解,也希望大家积极指正,帮助编程的初学者,以及程序开发人员深刻理解基础的概念,更好的学习编程和从事开发工作.         编写一本书,总要有个名字吧,姑且把书名叫做<Java

《C++编程风格(修订版)》——2.1 编程风格示例:string 类

2.1 编程风格示例:string 类 C++编程风格(修订版)我们来分析程序清单 2.1 中的 string 类,将注意力放在 string 对象的状态,以及在 string 类的接口和实现中的一致性.我们要从类的定义中找出不一致的地方.在代码中存在着许多问题, 当我们遇到第一个不一致的地方时,不要停下来,而是继续进行查找. 程序清单 2.1 最初的 string 类 string 对象的表示形式是一个字符类型的指针 s 和一个代表字符串长度的整数 len.在 string类中共有 4 个构造

Java编程那些事儿105——网络编程技术4

13.2.4 UDP编程 网络通讯的方式除了TCP方式以外,还有一种实现的方式就是UDP方式.UDP(User Datagram Protocol),中文意思是用户数据报协议,方式类似于发短信息,是一种物美价廉的通讯方式,使用该种方式无需建立专用的虚拟连接,由于无需建立专用的连接,所以对于服务器的压力要比TCP小很多,所以也是一种常见的网络编程方式.但是使用该种方式最大的不足是传输不可靠,当然也不是说经常丢失,就像大家发短信息一样,理论上存在收不到的可能,这种可能性可能是1%,反正比较小,但是由