java常见字符串操作
一、字符串查找
①indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置,当调用字符串的indexOf()方法时,会从当前字符串的开始位置搜索s的位置;如果没有检索到字符串s,该方法返回-1
②lastIndexOf(String str)
该方法用于返回字符串最后一次出现的索引位置。当调用字符串的lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1.
如果lastIndexOf方法中的参数是空字符串”” ,则返回的结果与length方法的返回结果相同。
二、获取指定索引位置的字符
使用charAt()方法可将指定索引处的字符返回。
三、获取子字符串
substring(int beginIndex)
该方法返回的是从指定的索引位置开始截取知道该字符串结尾的子串。
四、去除空格(只去掉首尾多余的空格)
trim()方法返回字符串的副本,忽略前导空格和尾部空格。
五、字符串替换
replace(oldchar,newChar)方法可实现将指定的字符或字符串替换成新的字符或字符串
oldChar:要替换的字符或字符串
newChar:用于替换原来字符串的内容
如果要替换的字符oldChar在字符串中重复出现多次,replace()方法会将所有oldChar全部替换成newChar。需要注意的是,要替换的字符oldChar的大小写要与原字符串中字符的大小写保持一致。
六、判断字符串的开始与结尾
startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。
1. startsWith(String prefix)
该方法用于判断当前字符串对象的前缀是否是参数指定的字符串。
2. endsWith(String suffix)
该方法用于判断当前字符串是否以给定的子字符串结束
七、判断字符串是否相等
equals(String otherstr)
如果两个字符串具有相同的字符和长度,则使用equals()方法比较时,返回true。同时equals()方法比较时区分大小写。
equalsIgnoreCase(String otherstr)
equalsIgnoreCase()方法与equals()类型,不过在比较时忽略了大小写。
八、按字典顺序比较两个字符串
compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0.
九、字母大小写转换
字符串的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而tuUpperCase()方法可将字符串中的小写字母改写为大写字母。
十、字符串分割
使用split()方法可以使字符串按指定的分隔字符或字符串对内容进行分割,并将分割后的结果存放在字符数组中。
str.split(String sign);
十一、获取字符串的长度 length
十二、把字符串转化为相应的数值
int型Integer.parseInt(字符串)
long型Long.parseLong(字符串)
double型Double.valueOf(字符串).doubleValue()
十三、字符串数组与字符串之间的转换
一个字符串可以变为一个字符 数组,同样,也可以把一个字符数组,变为一个字符串。
在String类中提供了以下操作方法:
将字符串变为字符数组:
public char[] toCharArray()
public String(char[] value)
十四、字符串与byte数组的转换
byte数组(字节数组),在一般的IO操作中会经常使用到。
在String类中提供了以下的方法可以进行字符串与字节数组间的转换:
字符串变为字节数组:public byte[] getBytes()
将一个字节数组变为字符串:
将全部字节数组变为String:pbulic String(byte[] bytes)
将部分字节数组变为String:public String(byte[] bytes,int offset,int length)
public class Main { public static void main(String args[]) { String str = "Java is the best language!"; int num1 = str.indexOf("ava");// 字符串查找 System.out.println("ava最先出现的位置是"+num1); int num2 = str.lastIndexOf("lan"); System.out.println("lan最后出现的位置是"+num2); char str1 = str.charAt(6); // 获取指定索引位置的字符 System.out.println("第六个字符为:"+str1); String str2 = str.substring(6); // 获取子字符串 System.out.println("第六个以后的字符串为"+str2); String str3 = str.substring(6, 9); System.out.println("六到九的字符串为:"+str3); String str4 = str.trim(); // 去除空格 System.out.println("去掉空格后的字符串为:"+str4); // 字符串替换 String str5 = str.replace("Java", "Chinese");// 方法可实现将指定的字符或字符串替换成新的字符或字符串 System.out.println("将java替换为chinese"+str5); // 判断字符串的开始与结尾 Boolean bl1 = str.startsWith("J"); System.out.println("字符串以J开头:"+bl1); Boolean bl2 = str.endsWith("J"); System.out.println("字符串以J结尾:"+bl2); // 字母大小写转换 String str6 = str.toLowerCase(); System.out.println("全转为小写后:"+str6); String str7 = str.toUpperCase(); // 字符串分割 System.out.println("全转换为大写后"+str7); String[] str8 = new String[8]; str8 = str.split("a", 5); System.out.println("将字符串用a分隔开,结果为:"); for(int i=0;i<str8.length;i++){ System.out.print(str8[i]); } System.out.print("结束"); } }
运行结果: