String类相信大家都不陌生,他对于我们程序员来说就如同键盘鼠标一样常用,今天我们就来学习一下String中的一些常用的方法
我们主要分成三部分来说,分别是判断功能、截取功能、修改功能。
第一部分:判断方法| equals(String other): | 判断字符串与other的值是否相等,相等返回true,不同返回flase。 |
| equalsIgnoreCase(String other): | 判断字符串值是否相等(忽略大小写) |
| startsWith(String prefix) | 判断字符串是否以prefix开头,是返回true,不是返回flase |
| endsWith(String prefix) | 判断字符串是否以prefix结尾,是返回true,不是返回false |
| indexof(String str) | 判断字符串是否包含str,如果包含,返回str的数组下标,如果不包含,返回-1 |
这些方法基本上都是boolean类型,但也有少部分是int类型,返回的是数组下标,下面我们通过代码来依次演示一下这些方法的使用,注释我会直接写在代码中。
//首先创建一个字符串
String s1="abcde";
//然后使用对象创建一个新的字符串,他们的地址不同,值相同。
String s2=new String("abcde");
//首先使用==判断,再使用equals判断做对比。
System.out.println("==判断结果:"+(s1==s2));
System.out.println("equals判断结果:"+s1.equals(s2));
//这时创建一个新字符串“ABC”,通过equalsIgnoreCase()判断忽略大小写。
String s3="ABCDE";
System.out.println("忽略大小写判断结果:"+s1.equalsIgnoreCase(s3));
//然后使用startsWith()方法判断是否以a开头。
System.out.println("是否以”a“开头:"+s1.startsWith("a"));
//使用endsWith()方法判断是否以d结尾。
System.out.println("是否以“d”结尾:"+s1.endsWith("d"));
//使用indexof()判断是否包含某个字符串
System.out.println("是否包含“c”:"+s1.indexOf("c"));
运行结果为:
可以看到除了最后一个返回数组下标之外,其余都返回布尔类型。
像equals这种判断,我们一般用在用户名和密码的验证功能中,而密码如果不区分大小写,我们也可以使用忽略大小写的判断方法。
而判断是否以某些字符串开头则可以用在查找所有同姓的用户等功能中,比如判断是否是以“李”开头,则可以找出所有姓李的人。
针对indexof方法不直接返回布尔类型,我们可以另写判断,只要返回的数值>0,就说明该字符串的某个位置包含特定字符,而返回的数值<0,则代表字符串中不包含特定字符。这个功能可以实现模糊查询,就像我们搜索java,就会跳出所有包含“java”的内容。
总之,灵活运用,功能是给定的,但是我们的思考是无穷的,我们可以延伸出许多有用的功能,而不单单是记住有这个功能。
第二部分:截取功能这里截取出来的返回值一般都是新的字符串,也有返回char类型的。
| charAt(int index) | 返回字符串中的第index个字符 |
| substring(int beginindex) | 返回一个新的字符串,包含从beginindex到串尾。 |
| substring(int beginindex,int endindex) | 返回一个新的字符串,包含从beginindex到endindex-1的内容。 |
这些是简单的截取功能,如果截取特定的某个字符,就用第一个比较快捷,如果截取的多,那就可以使用下面两个。
用代码演示一下,同样将注释写在代码中:
//定义一个长一些的字符串
String s1="灰太狼见了懒羊羊都要给他一块青草蛋糕";
//使用charAt()截取单个字符:
System.out.println("截取第一个字符:"+s1.charAt(0));
//使用substring()截取从第10位到结尾的字符串
System.out.println("截取第10位到结尾的字符串:"+s1.substring(10));
//使用substring截取特定位置的连续字符串
System.out.println("截取第5位到第7位的字符串:"+s1.substring(5,8));
运行的效果:
这里需要注意的是,截取特定位置的字符串时,是使用前闭后开区间,也就是说,如果你需要截取第7位到第10位,那就应该写substring(7,11),因为11是不包含在内的。
第三部分:修改功能当我们需要对字符串做一些修改的时候,我们可能会使用以下的方法
| toLowerCase() | 返回一个新的字符串,将该串中的字母全部改成小写 |
| toUpperCase() | 返回一个新的字符串,将该串中的字母全部改成大写 |
| replace(char oldChar,char newChar) | 返回一个新的字符串,将串中的oldChar替换为newChar |
| trim() | 返回一个新的字符串,删除原串开头和结尾的空格。 |
这些方法都是对字符串做了一些修改,注意,返回的都是新的字符串,原先的字符串没有任何变化。
使用代码演示一下:
//定义一个包含首尾空格的字符串
String s1=" AAA,BBB,ccc,ddd ";
//首先使用toLowerCase()方法,将大写变为小写
System.out.println("将大写字母变为小写字母:"+s1.toLowerCase());
//再使用toUpperCase()方法,将小写转换成大写
System.out.println("将小写字母变为大写字母:"+s1.toUpperCase());
//接下来使用replace()方法,将字符中的“,”替换为“$”
System.out.println("替换“,”为“$”:"+s1.replace(',','$'));
//去除首尾空格:
System.out.println("去除首尾空格:"+s1.trim());
运行结果:
这些方法可以很好的帮我们操作字符串。
像去除首尾空格,我们可以加在用户输入密码和用户名的时候,如果用户在设置密码的时候,不慎在开头或结尾输入空格,那么我们就可以帮助用户去掉首尾的空格。但中间的空格却不会被删除。
还有一个小方法:length,返回字符串长度,他的用法和数组.length是一样的。
总结这篇文章对于String类中的一些常见的方法进行了分类总结,希望对大家有所帮助,大家需要知道的是,方法是写死的,但是怎么用,在什么情景下用它,则是我们需要关心的,我们要善于思考,通过不同的逻辑和结构,让相同的方法帮助我们实现不同的功能,从而让我们开发的系统实现更加完善的功能。



