黑马程序员技术交流社区
标题: String类常用方法总结 [打印本页]
作者: lee123 时间: 2015-1-29 23:44
标题: String类常用方法总结
String类常用方法总结
一、连接字符串
String类提供了连接两个字符串的方法:
用法:string1.concat(string2),返回string2连接string1的新字符串。
第二种:使用'+'操作符来连接字符串,更常用。可以把其它各种类型的数据转换成字符串,并前后连接成新的字符串如:
String str="a" + " 8" + "c",结果是:"a8c"
二、equals()函数
2.1、booleanequals(Object anObject)函数将此字符串与指定的对象比较,结果为真返回1
,为假返回0
。 2.2、“==”是比较两个String类型引用变量指向的地址是否相等。
如下例所示:
public class StringTest{
public static voidmain(String[] args) {
Strings1 = "abc"; // s1、s2是String类型引用变量,栈中分配。
String s2 = "abc"; //“abc”是字符串常量,在数据区分配。
Strings3 = new String("abc"); // s3、s4是String类型对象变量,栈中分配。
Strings4 = new String("abc"); // newString("abc")在堆中分配
System.out.println(s1==s2); //判断s1、s2指向的地址是否相等
System.out.println(s1.equals(s2)); //判断s1、s2各自的内容是否相等
System.out.println(s3==s4); //判断s3、s4指向的地址是否相等
System.out.println(s3.equals(s4)); //判断s3、s4各自的内容是否相等
}
}
运行结果是:
true true false true
file:///C:/Users/Sing/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg file:///C:/Users/Sing/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
图1程序示意图 图2内存分配图file:///C:/Users/Sing/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg file:///C:/Users/Sing/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
由图1可以看出,当编译器检测到String类型引用变量s1、s2都指向字符串常量“abc”时,编译器会在数据区只分配一个存储空间来保存字符常量“abc”,如图1绿色区域所示。String类型的对象s3和s4指向的是各自在堆中new出来的存储空间,如图1黑色区域所示。
三、获取
3.1、获取字符串长度函数
int length() 函数,返回此字符串的长度。
测试实例:字数限制,请参照附件
3.2、根据位置获取字符串中对应的字符
char charAt(int index); 返回指定索引处的字符
3.3、根据字符获取在字符串中对应的位置。
int indexOf(int ch);获取ascii码为ch的字符在字符串中第一次出现的位置。查找成功返回位置下标,查找失败返回-1。
int indexOf(int ch, int fromIndex) ;从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str);返回的是str在字符串中第一次出现的位置。
int indexOf(String str, intfromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置。
四、判断。
4.2、字符中是否有内容。
boolean isEmpty(): 原理就是判断长度是否为0.
4.3、字符串是否是以指定内容开头。
boolean startsWith(str);
4.4、字符串是否是以指定内容结尾。
boolean endsWith(str);
测试实例: 请参照附件
4.5、判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equals(str); //不忽略大小写,具体见“二、equals()函数”
4.6、判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase(); //比较2个字符串时他会认为A-Z和a-z是一样的
测试实例: 请参照附件
五、转换。
5.1 将字符数组转成字符串。重点
构造函数:
String(char[]);把字符数组全部转换成字符串
String(char[],offset,count);把字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]); //等同于String(char[])
static StringcopyValueOf(char[] data, int offset, int count)//等同于String(char[],offset,count)
测试实例:请参照附件
5.2 将字符串转成字符数组。重点
char[]toCharArray():
测试实例:请参照附件
5.3 将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
5.4 将字符串转成字节数组。
byte[] getBytes():
5.5 将基本数据类型转成字符串。
字符串中特没劲的方法valueOf();它把基本数据型态转换成字符串。
有下列几种
staticStringvalueOf(boolean b) : 将 boolean 变量 b 转换成字符串
staticString valueOf(char c) : 将 char 变量 c 转换成字符串
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
六、替换
Stringreplace(oldchar,newchar);
测试实例:请参照附件
七、切割
String[] split(regex);
测试实例:请参照附件
八、子串获取字符串中的一部分。
Stringsubstring(begin);
Stringsubstring(begin,end);
测试实例:字数限制,请参照附件
九、转换去除空格,比较。
9.1将字符串转成大写或则小写。
StringtoUpperCase();
StringtoLowerCase();
9.2 将字符串两端的多个空格去除。
Stringtrim();
9.3 对两个字符串进行自然顺序的比较。
参考资料
1、毕向东老师java视频
2、马士兵老师java视频
3、Java基础教程.pdf 作者未知
4、http://www.w3cschool.cc 菜鸟笔记
5、其他网络资料
如有总结、描述有误的地方,请大家指正,为谢!
疑问:为什么我原文的图片一致都无法显示?发帖时文章的长度可不可以再长一点呢?
-
-
String类学习笔记.pdf
482.14 KB, 下载次数: 71
作者: lee123 时间: 2015-1-29 23:49
从23点发帖到现在23:40才发完,为什么里边还有乱码呢?
作者: robertlu 时间: 2015-1-29 23:50
学习了,谢谢分享
作者: 466273082 时间: 2015-1-29 23:50
谢谢提供String的学习笔记
作者: lee123 时间: 2015-1-30 09:22
不客气,原文上传时出现乱码,附件是完整的文档,请参考一下附件,如有错误的地方请指正,
作者: lee123 时间: 2015-1-30 09:25
不客气,原文上传时显示不全,且有乱码,请参阅附件,如有错误,请指正,让大家共同学习,共同进步
作者: Doug 时间: 2015-2-8 00:06
9.3空白,应该是compareTo()方法吧。
作者: Doug 时间: 2015-2-8 00:10
还缺少matches()和replaceAll(),这两个应用很广吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |