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、其他网络资料 如有总结、描述有误的地方,请大家指正,为谢! 疑问:为什么我原文的图片一致都无法显示?发帖时文章的长度可不可以再长一点呢?
|