一、字符串操作
1.1 获取子字符串
通过 String 类的 substring() 方法可对字符串进行截取。这些方法的共同点就是利用字符串的下标进行截取,且应明确字符串的下标都是从 0 开始的。
substring()
( 1 )substring ( int beginIndex )
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串
语法 :str.substring ( int beginIndex )
beginIndex :指定从某一索引处开始截取字符串
String str = "Hello word"; //定义字符串 str
String substr = str.substring(3); //获取字符串,此时的 substr 值为 lo word
在字符串中空格占一个索引位置。
( 2 )substring( int beginIndex , int endIndex )
该方法返回的是字符串某一索引位置开始截取至某一索引位置结束的子串
语法 :str.substring ( int beginIndex , int endIndex )
beginIndex :开始截取子字符串的索引位置。
endIndex :子字符串在整个字符串中的结束位置。
public calss Subs{ //创建类
public static void main(String[] args){ //主方法
String str = "hello word"; //定义的字符串
String substr = str.substring(0,3); //对字符串进行截取
System.out.println(substr); //截取的子字符串输出
}
}
运行结果为: hel
1.2 去除空格
trim() 方法返回字符串的副本,忽略前导空格和尾部空格。
语法 :str.trim()
str 为任意字符串对象。
public calss Blak{ //创建类
public static void main(String[] args){ //主方法
String str = " Java class "; //定义的字符串 str
System.out.println("字符串原来的长度:"+str.length()); //将 str 原来的长度输出
System.out.println("去掉空格后的长度:"+str.trim().length()); /将/ str 去掉空格后的长度输出
}
}
运行结果为:
字符串原来的长度:16
去掉空格后的长度:11
1.3 字符串替换
replace() 方法可实现将指定的字符或字符串替换成新的字符或字符串。
语法 :str.replace( char oldChar , char newChar )
oldChar :要替换的字符或字符串。
new :用于替换原来字符串的内容。
replace() 方法返回的结果是一个新的字符串。如果字符串 oldChar 没有出现在该对象表达式中的字符串序列中,则将原字符串返回。
public class NewStr{ //创建类
public static void main(String[] ag=rgs){ //主方法
String str = "address"; //定义的字符串 str
//字符串 str 中的字符 " a " 替换成 " A "后返回的新字符串 newstr
String newstr = str.replace("a","A"); //输出新字符串
System.out.println(newstr);
}
}
运行结果为: Address
如果要替换的字符在字符串中重复出现多次,则全部替换成新的字符,返回新的字符串。
1.4 判断字符串的开始与结尾
startsWith() 方法与 endsWith() 方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都是 boolean 类型。
( 1 )startWiths() 方法 该方法用于判断当前字符串对象的前缀是否是参数指定的字符串。
语法 :str.startsWith ( String prefic )
prefix 指作为前缀的字符
( 2 )endsWith ( String suffix ) 该方法用于判断当前字符串是否以给定的字符串结束。
语法 : str.endsWith ( String suffix )
suffix 值作为后缀的字符串
public class StartOrEnd{ //创建类
public static void main(String [] args){ //主方法
String num1 ="22045612"; //定义字符串num1
String num2 ="22304578"; //定义字符串num2
boolean b = num1.startsWith("22"); //判断字符串num1 是否以"22"开头
boolean b2 = num1.endsWith("78"); //判断字符串num1 是否以"78"结尾
boolean b3 = num1.startsWith("22"); //判断字符串num2 是否以"22"开头
boolean b4 = num1.endsWith("78"); //判断字符串num2 是否以"22"结尾
System.out.println("字符串 num1 是以 "22" 开始的吗?"+b);
System.out.println("字符串 num1 是以 "78" 结尾的吗?"+b2);
System.out.println("字符串 num2 是以 "22 "开始的吗?"+b3);
System.out.println("字符串 num2 是以 "78" 开始的吗?"+b4);
}
}
运行结果:
字符串 num1 是以 "22" 开始的吗? true
字符串 num1 是以 "78" 结尾的吗? false
字符串 num2 是以 "22" 开始的吗? false
字符串 num2 是以 "78" 结尾的吗? true
1.5 判断字符换是否相等
对字符串对象进行比较不能简单地使用比较运算符 " == " ,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用边角运算符仍然会返回 false 。
( 1 )equals() 方法
如果两个字符串具有相同的字符或长度,则使用 equals() 方法进行比较是,返回 true 。
语法 :str.equals( String otherstr )
str 、 otherstr 是参加比较的两个字符串对象。
( 2 )equalsIgnoreCase() 方法
使用 equals() 方法对字符串进行比较是区分大小写的,而使用 equalsIgnoreCase() 方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为 boolean 类型。
语法 :str.equalsIgnoreCase ( String otherstr )
str 、 otherstr 是参加比较的两个字符串对象
public class Opinion{ //创建类
public static void main(String[] args){ //主方法
String s1 = new String("abc"); //创建字符串对象 s1
String s2 = new String("ABC"); //创建字符串对象 s2
String s3 = new String("abc"); //创建字符串对象 s3
boolean b = s1.equals(s2); //使用 equals() 方法比较 s1 和 s2
//使用 equalsIgnoreCase() 方法比较 s1 和s2
boolean b2 = s1.equalsIgnoreCase(s2);
}
}
运行结果为:
abc equals ABC : false
abc equalsIgnoreCase ABC : true
1.6 按字典顺序比较两个字符串
compareTo() 方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的 Unicode 值,按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数;如果两个字符串相等,则结果为 0 。
语法 :str.compareTo( String otherstr )
str 、otherstr 是参数比较的两个字符串对象。
compareTo() 方法只有在 equals(Object) 方法返回 true 时才返回 0 。
public class WordBook{ //创建类
public static void main(String[] args){ //主方法
String str =new String("b");
String str2 = new String("a");
String str3 = new String("c");
System.out.println(str+"compareTo "+str2+":"+str.compareTo(str2));
System.out.println(str+"compareTo "+str3+":"+str.compareTo(str3));//将 str 与 str3 比较的结果输出
}
}
运行结果为:
b compareTo a : 1
b compareTo c : -1
1.7 字母大小写转换
字符串的 toLowerCase() 方法可将字符串中的所有字符从大写字母改写为小写字母,而 toUpperCase() 方法可将字符串中的小写字母改写为大写字母。
( 1 )toLowerCase() 方法
该方法将 String 转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中每个该进行小写转换的字符都转换成等价的小写字符。字符长度与原字符长度相同。
语法 : str.toLowerCase()
str 是要进行转换的字符串
( 2 )toUpperCase() 方法
该方法将 String 转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回了;否则返回一个新字符串,将原字符串中每个该进行大写转换的字符都转换成等价的大写字符。新字符长度与元字符长度相同。
语法 :str.toUpperCase()
str 是要进行转换的字符串
使用 toLowerCase() 方法和 toUpperCase() 方法进行大小写转换时,数字与非字符不受影响。
public class UpAndLower{ //创建类
public static void main(String[] args){ //主方法
String str = new String("abc DEF"); //创建的字符串 str
String newstr = str.toLowerCase(); //进行小写转换
String newstr2 = str.toUpperCase(); //进行大写转换
System.out,println(newstr);
System.out.println(newstr2);
}
}
运行结果为:
abc def
ABC DEF
1.8 字符串分割
使用 split() 方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。
( 1 ) split ( String sign)
该方法可根据给定的分割符对字符串进行拆分。
语法 :str.split(String sign)
sign 为分割字符串的分隔符,也可以使用正则表达式。
( 2 )split ( String sign ,int limit )
该方法可根据给定的分隔符对字符串进行拆分,并限定拆分的次数。
语法 : str.split(String sign ,int limit)
sign :分割字符串的分隔符,也可以使用正则表达式
limit :限制的分割次数
public class Divison{//创建类
public static void main(String[] args){//主方法
String str =new String("abc,def,ghi,gkl");
String[] newstr = str.split(",");//进行拆分,返回字符串数组
for(int i=0;i<newstr.length;i++){
System.out.println(newstr[i]);
}
String[] newstr2 = str.split(",",2);//进行拆分,并限制拆分次数 2 ,返回字符串数组
for(int j=0;j<newstr2.length;j++){
System.out.println(newstr2);
}
}
}
运行结果为:
abc
def
ghi
gkl
abc //第一次拆分的结果
def,ghi,gkl //第二次拆分的结果
对于学习Java,看书,看视频,看官方文档,看API,多练,多想。
要时刻学习,更新很快,要学习新技术,好好加油,祝终成大神。