A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lee123 中级黑马   /  2015-1-29 23:44  /  985 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类常用方法总结
一、连接字符串
String类提供了连接两个字符串的方法:
第一种:String concat(String str)函数将指定字符串连接到此字符串的结尾
用法:string1.concat(string2),返回string2连接string1的新字符串。
第二种:使用'+'操作符来连接字符串,更常用可以把其它各种类型的数据转换成字符串,并前后连接成新的字符串如:
String str="a" + " 8" + "c",结果是:"a8c"
二、equals()函数
2.1booleanequals(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.1、字符串中是否包含某一个子串。
boolean contains(CharSequences);
      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, 下载次数: 52

7 个回复

倒序浏览
从23点发帖到现在23:40才发完,为什么里边还有乱码呢?
回复 使用道具 举报
robertlu 来自手机 中级黑马 2015-1-29 23:50:04
藤椅
学习了,谢谢分享
回复 使用道具 举报
谢谢提供String的学习笔记
回复 使用道具 举报
robertlu 发表于 2015-1-29 23:50
学习了,谢谢分享

不客气,原文上传时出现乱码,附件是完整的文档,请参考一下附件,如有错误的地方请指正,
回复 使用道具 举报
466273082 发表于 2015-1-29 23:50
谢谢提供String的学习笔记

不客气,原文上传时显示不全,且有乱码,请参阅附件,如有错误,请指正,让大家共同学习,共同进步
回复 使用道具 举报
Doug 中级黑马 2015-2-8 00:06:04
7#
9.3空白,应该是compareTo()方法吧。
回复 使用道具 举报
Doug 中级黑马 2015-2-8 00:10:20
8#
还缺少matches()和replaceAll(),这两个应用很广吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马