黑马程序员_String类介绍

---------------------android培训java培训、java学习型技术博客、期待与您交流! -------------------

在JAVA中定义了 String 和 StringBuffer 两个类来封装对字符串的处理,他们包含在java.lang包中,使用直接使用就可以,不用导包。
在Java中字符串有如下特性:
1、字符串必须使用""双引号来括起来;
2、字符串的字符使用Unicode国际统一字符编码,一个字符占两个字节;
3、 String 是一个 final 类,代表不可变的字符序列;
4、字符是不可变(immutable)的,一个字符一旦被配置了,它的内容就是固定的。
学习字符串时,需要注意到的是Java的常量优化机制,如同基本数据类型中的 byte+=127的结果是-1一样,字符串也是一样。
例如:

String s1 = "china";
String s2 = "china";

上面这句代码中是有s1和s2两个引用,指向的都是常量字符串池中的"china"。
当直接在程序中使用""来创建一个字符串对象时,该字符串就会存储于字符串常量池中,当创建对象s2时,会先在常量字符串池中,查找是否已经存在"china",如果有的话,则直接将这个地址值赋给s2,无需重新创建。
与 String s = new String("china"); 不一样,用 new 创建对象时,会先在常量字符串池中,查找是否有其对象,如果没有的话,则会先创建,创建完之后,再将这个值赋给在堆内存中创建的对象。
用new创建对象,实际上是创建了两份对象。

常用方法:
1、equals(String s);
如下代码所示:

String s1 = "china";
String s2 = "chinayou";
boolean boo = s1.equals(s2);
//返回的结果为false

用equals(String s)可以比较两个字符串的内容是否相同,必须完全一样,返回的结果才为true,否则为false。
与这个方法接近的方法是equalsIgnoleCae()方法,该方法忽略大小写,如下代码:

String s1 = "china";
String s2 = "CHINA";
boolean boo = s1.equalsIgnoreCase(s2);
//返回的结果为true

2、==
比较常量时,==是用于比较两个的值是否相等,在比较对象是,则是比较两个变量是否指向同一个对象。
如同上面的代码,创建的代码都是在常量池中存放的。

String s1 = "china";
String s2 = "china";
s1 == s2;
//返回的结果为true

java中有常量优化机制,上面这段代码中,s1和s2和指向是一样的,即是同一对象。

3、startsWith(String prefix)和endsWith(String suffix)方法用来测试此字符串是否以指定前缀开始或结束。

String s1 = "2013818847";
boolean boo = s1.startsWith("201");	//结果为true
boolean boo = s1.endsWith("847");	//结果为false

4、length()方法
该方法用于返回字符串数组的长度,与数组的长度差别在于,后面是否带括号。

String s = "abcdefg";
int length = s.length();
//返回的结果是 int length = 7;

5、charAt()方法
该方法用于获取指定字符串的字符

String s1 = "china";
System.out.println(s1.charAt(3));
//返回的结果是n

6、replace方法
传入的值可以是字符和字符串。
这个方法可用于替换指定字符,如果指定的旧字符不存在的话,则返回原字符。

String s1 = "黑马程序员训练";
String s2 = "csdn";
String s3 = s1.replace("练", "练营");	
//返回结果是黑马程序员训练营
String s4 = s2.replace('f', 'n');
//返回的是原字符串,因为指定要被替换的字符不存在,因此返回的是原字符串。

String这个类的方法比较多,这里就不多介绍了,只有多进行练习了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值