Java详解String类
2014-11-03 23:28
295 查看
1.String对象的初始化
/* 两种初始化方法,一种是直接用字符串赋值,一种是用面向对象的方法初始化 */ String str="hello"; String str=new String("hello");
但这两种方法是有区别的,我们来看看下面一段程序。
public class Test { public static void main(String[] args) { String str1="hello"; String str2="hello"; String str3=new String("hello"); String str4=new String("hello"); if(str1==str2) System.out.println("str1与str2相等"); else System.out.println("str1与str2不相等"); if(str1==str3) System.out.println("str1与str3相等"); else System.out.println("str1与str3不相等"); if(str3==str4) System.out.println("str3与str4相等"); else System.out.println("str3与str4不相等"); } }输出结果是: str1与str2相等
str1与str3不相等
str3与str4不相等
String str1="hello"这样创建的对象,会先去常量池查找是否有此字符串,若没有则在常量池中创建次字符串。最后str1成为指向常量池中此字符串的引用。
String str3=new String("hello")这样创建的对象,会先去常量池查找是否有此字符串,若没有则在常量池中创建次字符串。然后再在堆中创建常量池中此字符串的拷贝对象。最后str3成为指向该拷贝对象的引用。
这样有很容易明白为什么str1与str2相等,str1与str3不相等,str3与str4不相等。
PS:对象是否相等用"==",如果要判断对象的值是否相等可以用"equals()"。
2.String类的常用操作
2.1charAt()方法
返回相应索引位置的字符。索引值从0开始,若索引越界程序会报错。String str="hello"; str.charAt(1);//返回的值是‘e’
2.2equals()与equalsIgnoreCase()方法
equals()方法:如果两个字符串具有相同的字符和长度并且大小写相同,则返回true,否则返回false。equalsIgnoreCase()方法:在忽略大小写的情况下,如果两个字符串具有相同的字符和长度,则返回true,否则返回false。
String str="hello"; str.equals("hello");//返回true str.equals("hElLo");//返回true
2.3length()方法
求字符串的长度String str="hello"; str.length();//返回值是5
2.4indexOf()与lastIndexOf()方法
indexOf()方法:返回的是搜索的字符或字符串首次出现的位置。lastIndexOf()方法:返回的是搜索的字符或字符串最后一次出现的位置。
若没有搜到,两者都返回-1。
String str="hello"; str.indexOf('l');//返回值是2 str.lastIndexOf('l');//返回值是3
2.5trim()方法
返回字符串去掉前导空白和尾部空白的一个副本。String str=" hello "; str.trim();//返回值是"hello"
2.6substring()方法
substring(int beginIndex)方法:返回从指定索引位置开始截取字符串直到该字符串的结尾的子串。substring(int beginIndex,int endIndex)方法:返回从开始索引位置到结束索引位置的的子串。子串中不包含结束索引位置的字符。
String str="hello"; str.substring(1);//返回值是"ello" str.substring(1,4);//返回值是"ell"
2.7split()方法
split(String regex)方法:根据给定正则表达式的匹配拆分此字符串,返回值类型是字符串数组。split(String regex,int limit)方法:根据给定正则表达式的匹配拆分此字符串,返回值类型是字符串数组,同时限制返回字符串数组的大小。
String str="hello"; str.split("l");//返回{"he","","o"} str.split("l",2);//返回{"he",""}
2.8replace()方法
将指定的字符或字符串替换成新的字符或字符串。String str="hello"; str.replace('h','Q');//返回值是"Qello"
2.9toLowerCase()与toUpperCase()方法
toLowerCase()方法:将字符串中所有字符转换成小写。toUpperCase()方法:将字符串中所有字符转换成大写。
String str="Hello"; str.toLowerCase();//返回值是"hello" str.toUpperCase();//返回值是"HELLO"PS:具有大小写不仅仅只有字母。
2.10startsWith()与endsWith()方法
startsWith()方法:测试此字符串是否以指定的前缀开始。返回值类型是布尔类型。endsWith()方法:测试此字符串是否以指定的后缀结束。返回值类型是布尔类型。
String str="hello"; str.startsWith("he");//返回值是true str.endsWith("lo");//返回值是true
相关文章推荐
- Java中String类详解
- Java中String类详解
- java中的String类常量池详解
- java中String类详解
- Java中的string类详解
- java string类详解
- Java String类详解(一)
- java中String类详解(收集)
- Java中String类详解
- java中的String类常量池详解
- java中的String类常量池详解
- java----String类详解
- java中String类详解(享元模式思考)
- java中的String类常量池详解
- Java基础之String类详解
- java中String类详解(享元模式思考)
- java.String类replace函数的详解
- java String类详解
- java中的String类常量池详解
- java中String类常量池详解