注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小白的博客

嵌入式爱好者

 
 
 

日志

 
 

String类的方法  

2012-10-07 02:05:03|  分类: JAVA学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
方法1:
b.equals(String a):比较两个字符串是否相等!
例子1:
public class Test {
public static void main(String[] args){
String a = new String("liuhang");
String b = new String("liuhang");
System.out.println("a==b "+(a==b));
System.out.println("a.equals(b) "+a.equals(b));
}
}

结果:
a==b false
a.equals(b) true

解释:
==比较的是两个变量是否指向同一块空间,equals()比较的是指向的两个内存空间的值是否相等,== 为true的equals()一定为true(指向同一空间,值一定相等),但equals()为true,==不一定为true(两个数值相等,不一定是同一块内存空间),在java中,我们做字符串比较要使用equals()方法。

例子2:
public class Test {
public static void main(String[] args){
String a = "liuhang";
String b = "liuhang";
String c = new String("liuhang");
System.out.println("a==b "+(a==b));
System.out.println("a==c "+(a==c));
System.out.println("a.equals(b) "+a.equals(b));
System.out.println("a.equals(c) "+a.equals(c));
}
}
结果:
a==b true
a==c false
a.equals(b) true
a.equals(c) true

解释:
这里JAVA又一个字符串池的概念。就是说它会把所已知的字符串放入字符串池,如果你创建新字符串没有使用new关键字,如String b = "wangwang";这行代码,它首先会去字符串池找有没有相同值的字符串,如果有的话就指向它;如果没有的话就会创建新的空间。这里查询时找到了对应的值,所以a和b指向了通一块内存空间。而如果使用了new关键字,如String c = new String("wangwang");这行代码,它不会去字符串池中寻找而直接创建一份新的内存空间。基于这些,才有上面的运行结果。

方法2:
.length():求字符串长度
例子:
String pwd = " wangwangpwd ";
System.out.println("pwd的长度是" + pwd.length());

方法3:
trim():去掉字符串两边的空格
例子:
String pwd = " wangwangpwd ";
System.out.println("pwd去掉两边空格的长度是" + pwd.trim().length());

方法4:
toLowerCase(),toUpperCase():把字符串全部转换为大写或小写
例子:
String pwd3 = "wangWANG";
System.out.println("转换小写为:" + pwd3.toLowerCase());
System.out.println("转换大写为:" + pwd3.toUpperCase());

方法5:
substring(int a, int b):从a开始截取(b-a)个字符(注意有的语言是从a开始截取b个字符,比如C#中,而javaScript提供了两个函数subStr与subString)。
例子:
String msg = "my name is wangwang";
System.out.println("从第5的位置截取4的字符是"+ msg.substring(5, 9));

方法6:
indexOf(String target):查找target在字符串中第一次出现的位置,注意下标是从0开始,如没出现返回-1。比如我们验证用户输入的电子邮件地址是否正确,电子邮件中一定有@字符与.字符,而且@出现的位置应该在.的前面,就可以使用此方法。 
例子:
String msg = "my name is wangwang";
System.out.println("字符串a在msg中第一次出现的位置是"
+ msg.indexOf("a"));
//没出现用-1表示
System.out.println("字符串mm在msg中出现的位置是"
+ msg.indexOf("mm"))
String email = "shudaizi@163.com";
if ((email.indexOf("@") < email.indexOf(".")) && email.indexOf("@") != -1 ) {
System.out.println(email + "是合法的邮件地址");
} else {
System.out.println(email + "不是合法的邮件地址");
}

方法7:
indexOf(int a, String target):从a的位置开始,查找target在字符串中第一次出现的位置,注意下标是从0开始,如没出现返回-1。
例子:
String msg = "my name is wangwang";
System.out.println("从下标5开始,a第一次出现的位置是"+ msg.indexOf("a", 5));

方法8:
lastIndexOf(String target) :查找target在字符串中最后一次出现的位置,如没出现返回-1。
例子:
String msg = "my name is wangwang";
System.out.println("a最后一次出现的位置是"+ msg.lastIndexOf("a")); 

方法9:
charAt(int a):返回字符串a位置的字符,如果越界的话报错
例子:
String msg = "my name is wangwang";
System.out.println("5位置的字符是" + msg.charAt(5));
System.out.println("50位置的字符是" + msg.charAt(50));

方法10:
replace(String a, String b):把字符串中的a替换为b。
例子:
String msg = "my name is wangwang";
System.out.println("a替换为**:" + msg.replace("a", "**"));

方法11:
rplit(String a):把字符串按照其中出现的字符a拆分为一个数组。
例子:
String msg = "my name is wangwang";
String [] arr = msg.split("a");
System.out.println("拆分后的数据长度为" + arr.length);
for (String string : arr) {
System.out.println(string);
  评论这张
 
阅读(1149)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018