字符串的创建

        字符串就是一系列字符的序列。在Java语言中字符串是用一对双引号("")括起来的字符序列,在前几章的例子中已多次用到,如“你好”、"Hello"等。字符串也是编程中经常要使用的数据结构,从某种程度上说字符串有些类似于字符数组。在Java语言中无论是字符串常量还是字符串变量,都是用类来实现的。程序中用到的字符串可以分为两大类:一类是创建之后不会再做修改和变动的字符串变量;另一类是创建之后允许再做修改的字符串变量。对于前一种字符串变量,由于程序中经常需要对它做比较、搜索之类的操作,所以通常把它放在一个具有一定名称的对象之中,由程序完成对该对象的上述操作,在Java程序中存放这种字符串的变量是String类对象;对于后一种字符串变量,由于程序中经常需要对它做添加、插入、修改之类的操作,所以这种字符串变量一般都存放在StringBuilder类的对象之中。本文只讨论String类型的串变量。

1.字符串变量的创建

        首先再强调一下字符串常量与字符常量的不同,字符常量是用单引号(')括起来的单个字符,而字符串常量是用双引号(")括起来的字符序列。声明字符串变量的格式与其他变量一样,分为对象的声明与对象创建两步,这两步可以分成两个独立的语句,也可以在一个语句中完成。

格式一:

String变量名;

变量名=new String("字符串");

如:

String s;                   //声明字符串型引用变量s,此时s的值为null

s=new String("Hello"); //在堆内存中分配空间,并将s指向该字符串首地址

第一个语句只声明了字符串引用变量s,此时s的值为null;第二个语句则在堆内存中分配了内存空间,并将s指向了字符串的首地址。

上述的两个语句也可以合并成一个语句。其格式如下。

格式二:

String变量名=new String(“字符串”);

 

如:

String s=new String("Hello");

还有一种非常特殊而常用的创建String对象的方法,这种方法就是直接利用双引号括起来的字符串为新建的String对象赋值,即在声明字符串变量时直接初始化。

格式三:

String变量名="字符串";

如:

String s="Hello";

由于字符串是引用型变量,所以其存储方式与数组的存储方式基本相同。

程序中可以用赋值运算符为字符串变量赋值,除此之外,Java语言定义“+”运算符可用于两个字符串的连接操作(关于字符串的运算符在3.7.7中已讲述过)。例如:

str="Hello"+"Java"; //str的值为"HelloJava"

如果字符串与其他类型的变量进行“+”运算,系统自动将其他类型的数据转换为字符串型。例如:

int i=10;

String s="i="+i;  //s的值为"i=10"

前面说过,利用String类创建的字符串变量,一旦被初始化或赋值,它的值和所分配的内存内容就不可再改变。如果硬要改变它的值,它会产生一个新的字符串。例如:

String str1="Java";

str1=str1+"Good";

这看起来像是一个简单的字符串重新赋值,实际上在程序的解释过程中却不是这样的。程序首先产生str1的一个字符串对象并在内存中申请了一段空间,由于发现又需要重新赋值,在原来的空间已经不可能再追加新的内容,系统不得不将这个对象放弃,再重新生成第二个新的对象str1并重新申请一个新的内存空间。虽然str1指向的内存地址(句柄)是同一个,但对象已经不再是同一个了。

2.String类的常用方法

        Java语言为String类定义了许多方法。可以通过下述格式调用Java语言定义的方法:

字符串变量名.方法名();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hamilton_Huan

原创不易,结合业务原创更不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值