String类中常用的方法及字符串为空的判断
字符串概述:
不可变字符串:String:创建一个对象后,其内容不能再改变
可变字符串:StringBuffer 和StringBuilder:创建对象后,其中的可以改变内容。
这三种类型在底层都是包装的char 类型的数组
1.String
创建后不能改变,一旦改变就是一个新的对象。
String的对象创建:
— 直接创建 String str="ASFD"
* 最多创建一个对象,最少不创建对象。若在常量池中有"ASFD",则直接引用,否则先在常量池中创建该对象再引用。
—用构造器创建 String str= new String("ASFD");
* 最多创建两个,最少创建一个。首先new 出来的对象一定在堆中,若在常量池中存在"ASFD",则只需创建一个对象,如果没有,需要创建2个,先在常量池中创建一个,在创建一个对象对常量池中内容的引用。
两种方式的内存图:
1.1 String对象的空值
String str =null //没有初始化,没有分配内存空间
String str =" " //有初始化,分配了内存空间,但是没有内容
1.2判断字符串是否为空(2种情况)
—引用不能为空(null)
—内容不能为空(“ ”)
1.3字符串的比较操作
—“==”比较的是对象的内存地址
—“equals”在object中比较的也是内存地址,但是在String中重写了此方法,比较的是内容。
2.String常用的方法(java.lang.String)
一、构造函数
String(byte[ ]bytes):通过byte数组构造字符串对象。
String(char[ ]value):通过char数组构造字符串对象。
String(Stingoriginal):构造一个original的副本。即:拷贝一个original。
String(StringBufferbuffer):通过StringBuffer数组构造字符串对象。
例如:
byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
char[] c = {'0','1','2','3','4','5','6','7','8','9'};
String sb = new String(b); //abcdefghij
String sb_sub = new String(b,3,2); //de
String sc = new String(c); //0123456789
String sc_sub = new String(c,3,2); //34
String sb_copy = new String(sb); //abcdefghij
二、基本方法:
说明:①、所有方法均为public。
②、书写格式: [修饰符] <返回类型><方法名([参数列表])>
(1)字符串的转换
byte[] getBytes():将该String对象转换成byte数组。
char[ ] toCharArray():将该String对象转换成char数组。
String toLowerCase():将字符串转换成小写。
String toUpperCase():将字符串转换成大写。
(2)获取字符串的信息
int length():返回当前字符串长度。
int indexOf(String str):只找第一个匹配字符串位置。
int indexOf(String str, int fromIndex):从fromIndex开始找第一个匹配字符串位置。
int lastIndexOf(String str, int fromIndex) 与以上方法不同的是只找最后一个匹配的内容。
(3)字符串之间的比较
boolean contentEquals(String sb):将该String对象与指定对象sb进行比较。与equals()一样,比较对象的内容。
boolean equals(Object anObject):当anObject不为空并且与当前String对象一样,返回true;否则,返回false。
boolean equalsIgnoreCase(String another):比较字符串与another是否一样(忽略大小写);
(4)字符串的大小写转换
String toLowerCase():将字符串转换成小写。
String toUpperCase():将字符串转换成大写。
三、基本方法:
实现以下两个功能:
1.获取以hello开头的文件名的后缀名;
2.把单词首字母变成大写
split(String str) 分割 //一般返回字符串数组
startWith(String str)判断是否以某个具体的字符串开头的 //返回boolean类型
substring(int index)以某个下标开始到结束的字符串 //返回一个字符串
判断字符串是否为空:
1.引用不能为null
2.不能为空字符串
3.不能为空格
trim()方法: 忽略字符串中开始和结束位置的空格
判断是否为 “ ”时,应使“ ”在前面,防止字符串为空指针,导致语法错误。
eg: if(!"".equals(str.trim()) )