String类常用方法:字符串比较、转换、查找、替换、拆分、截取、格式化
1、字符串与字符数组的转换
toCharArray()
String str = "helloword";char [] result= str.toCharArray();for (int x=0;x < result.length;x++){//编码减少32,将小写转换成大写字符result[x] -= 32;}//将处理后的字符数组交给String变为字符串String newStr = new String(result);System.out.println(newStr);//若要取部分字符串,取从0开始到5结束的字符System.out.println(new String(result,0,5));
2、检验字符串是否由数字组成
package Test;public class Demo2 {public static void main(String[] args) {String str = "helloworld";System.out.println(isNumber("123") ? "由数字组成" : "不是由数字组成");}//定义一个方法:主要用来判断字符串是否由数字组成public static boolean isNumber(String str){//将字符串变成字符数组char [] result = str.toCharArray();for (int x = 0;x < str.length();x++){//将result数组里的字符与字符0~9之间进行比较if (result[x] < '0' || result[x] > '9'){return false;}}return true;}
}
3、字节与字符串之间的转换
package Test;public class Demo2 {public static void main(String[] args) {//字节与字符串的转换String str = "helloheh";//将字符串变成字节数组byte [] data = str.getBytes();for (int x = 0;x < data.length;x++){data[x] -= 32;}System.out.println(new String(data));System.out.println(new String(data,0,5));}}
3、字符串比较
等值比较:equals
大小比较:compareTo
package Test;public class Demo2 {public static void main(String[] args) {//字符串比较//1、public boolean euqals(String anObject):区分大小写的相等比较//进行字符串区分大小写等值比较String strA = "ABC";String strB = "abc";System.out.println(strA.equals(strB));//结果为false//2、public boolean equalsIgnoreCase(String anotherString):不区分大小的比较//进行字符串不区分大小写等值比较String strC = "ABC";String strD = "abc";System.out.println(strA.equalsIgnoreCase(strD));//结果为true//3、public int compareTo(String anotherString):进行字符串大小比较,该方法返回一个int型数据,该数据有三种取值:大于(>0)、小于(<0)、等于(=0)//进行字符串区分大小比较String strE = "mmh";String strF = "mmH";System.out.println(strE.compareTo(strF));//结果为32 说明:strE > strFSystem.out.println(strF.compareTo(strE));//结果为-32 说明:strF > strESystem.out.println("HELLO".compareTo("HELLO"));//结果为0 说明:"HELLO" = "HELLO"//4、public int compareToIgnoreCase(String str):不区分大小写进行字符串比较//进行字符串不区分大小比较String strG = "MMh";String strH = "mmH";System.out.println(strE.compareToIgnoreCase(strH));//结果为0 说明:strH = strG}}
4、字符串查找
package Test;public class Demo2 {public static void main(String[] args) {//字符串查找//1、public boolean contains(String s):判断子字符串是否存在(存在返回true,不存在返回false)//判断子字符串是否存在String str = "hello.csdn.dd";System.out.println(str.contains("dd"));//结果为trueSystem.out.println(str.contains("world"));//结果为false//2、public int indexOf(String str):从头查找指定字符串的位置,找不到返回-1,找到返回首字符的索引//判断字符串是否存在String str2 = "hello.csdn.dd";System.out.println(str2.indexOf("dd"));//结果为11System.out.println(str2.indexOf("world"));//结果为-1//3、public int indexOf(String str,int fromIndex):从指定位置由前向后查找指定字符串的位置//4、public int lastIndexOf(String str):从后向前查找指定字符串的位置String str3 = "hello.csdn.dd";System.out.println(str3.lastIndexOf("."));//结果为10System.out.println(str3.lastIndexOf("world"));//结果为-1//5、public int lastIndexOf(String str,int fromIndex):从指定位置由后向前查找指定字符串的位置//6、public boolean startsWith(String prefix):判断是否以指定的字符串开头//7、public boolean startsWith(String prefix,int toffset):从指定位置判断是否以指定的字符串开头//8、public boolean endsWith(String suffix):判断是否以指定的字符串结尾//判定是否已指定字符串开头或结尾String str4 = "**@@ello.csdn.dd##";System.out.println(str4.startsWith("**"));//结果为trueSystem.out.println(str4.startsWith("@@",2));//结果为trueSystem.out.println(str4.endsWith("##"));//结果为true}}
5、字符串替换
replaceAll():全部替换
replaceFirst():替换首个
通过只当内容进行字符串替换显示
package Test;public class Demo2 {public static void main(String[] args) {//字符串替换:通过只当内容进行字符串替换显示//1、public String replaceAll(String regex,String replacement):全部替换//2、public String replaceFirst(String regex,String replacement):替换首个String str = "hello.csdn.dd";System.out.println(str.replaceAll("l","x"));//结果:hexxo.csdn.ddSystem.out.println(str.replaceFirst("l","x"));//结果:hexlo.csdn.dd}}
6、字符串拆分
遇到拆分不了的字符,试试使用转义字符进行转义,可以根据字符索引进行截取(大多涉及逻辑计算)
package Test;public class Demo2 {public static void main(String[] args) {//字符串拆分:根据指定的字符串或者是表达式实现字符串的拆分,拆分完成的数据会以字符串数组的形式返回//1、public String[] split(String regex):按照指定的字符串全部拆分//字符串拆分处理String str = "hello world hello csdn";//按空格全部拆分String result [] = str.split(" ");for (int x = 0;x < result.length;x++){System.out.println(result[x]);}/*结果:helloworldhellocsdn*///2、public String[] split(String regex,int limit):按照指定的字符串拆分为指定的个数//字符串拆分处理String str2 = "hello world hello csdn";//按空格只拆分两个,后面不进行拆分String result2 [] = str2.split(" ",2);for (int x = 0;x < result2.length;x++){System.out.println(result2[x]);}/** hello* world hello csdn* *///若是遇到拆不了的情况,可以考虑转义String str3 = "hello.world.ello.csdn";//按空格只拆分两个,后面不进行拆分String result3 [] = str3.split("\\.");for (int x = 0;x < result3.length;x++){System.out.println(result3[x]);}/*结果:helloworldellocsdn*/}}
7、字符串截取
从一个完整的字符串之中截取出子字符串
package Test;public class Demo2 {public static void main(String[] args) {//字符串截取:从一个完整的字符串之中截取出子字符串,//1、public String substring(int beginIndex):从指定索引截取到结束//2、public String substring(int beginIndex,int endIndex):截取指定索引范围中的子字符串//观察子字符串的操作String str = "www.csdn.dd";System.out.println(str.substring(4));//结果:csdn.ddSystem.out.println(str.substring(4,6));//结果:cs//根据索引找到位置String str1 = "昵称-tel-里斯.div";int beginIndex = str1.indexOf("-",str1.indexOf("tel")) + 1;int endIndex = str1.lastIndexOf(".") ;System.out.println(str1.substring(beginIndex,endIndex));//结果:里斯}}
8、字符串格式化
类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)
package Test;public class Demo2 {public static void main(String[] args) {//格式化字符串:类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)//1、public static String format(String format,各种类型 ...args):根据指定结构进行文本格式化显示//格式化处理String name = "张三";int age = 18;double score = 98.765261;String str = String.format("姓名:%s、年龄:%d、成绩:%5.3f。",name,age,score);System.out.println(str);//结果:姓名:张三、年龄:18、成绩:98.765。}}
9、其他操作方法
package Test;public class Demo2 {public static void main(String[] args) {//其他操作方法//1、public String concat(String str):描述字符串的连接过程//字符串连接String str = "www.".concat("csdn");System.out.println(str);//结果:www.csdn//2、public String intern():字符串入池//3、public boolean isEmpty():判断是否为空字符串(不是null)//null和""的区别:null表示没有实例化对象,""表示有实例化对象,但是内容为空String str1 = "csdn";System.out.println(str1.isEmpty());//结果:falseSystem.out.println("www".isEmpty());//结果:false//4、public int length():计算字符串长度//5、public String trim():去除左右的空白符号String str2 = " hello csdn ";System.out.println(str2.length());System.out.println(str2);String newStr2 = str2.trim();System.out.println(newStr2.length());System.out.println(newStr2);/*结果:*20hello csdn 10hello csdn* *///6、public String toUpperCase():转大写//7、public String toLowerCase():转小写//String类里面提供有大小写转换,但是这种转换的特征是可以避免非字母的转换//大小写转换String str3 = "Hello World!!!";System.out.println(str3.toUpperCase());//结果:HELLO WORLD!!!System.out.println(str3.toLowerCase());//结果:hello world!!!//自定义编写首字母大写的方法,因为String类没有提供System.out.println(StringUtil.initcap("hello world"));//结果:Hello worldSystem.out.println(StringUtil.initcap("h"));//结果:H}}class StringUtil{public static String initcap(String str){//如果字符串等于空或者无内容,则原样返回字符串if (str == null || "".equals(str)){return str;}//如果str的长度为1,则调用大写的方法if (str.length() == 1){return str.toUpperCase();}//如果字符的长度即不为1,也不为空,则利用字符串截取第一位字符,进行大写转换,然后加上1到结尾的字符return str.substring(0,1).toUpperCase() + str.substring(1);}
}
String类常用方法:字符串比较、转换、查找、替换、拆分、截取、格式化
1、字符串与字符数组的转换
toCharArray()
String str = "helloword";char [] result= str.toCharArray();for (int x=0;x < result.length;x++){//编码减少32,将小写转换成大写字符result[x] -= 32;}//将处理后的字符数组交给String变为字符串String newStr = new String(result);System.out.println(newStr);//若要取部分字符串,取从0开始到5结束的字符System.out.println(new String(result,0,5));
2、检验字符串是否由数字组成
package Test;public class Demo2 {public static void main(String[] args) {String str = "helloworld";System.out.println(isNumber("123") ? "由数字组成" : "不是由数字组成");}//定义一个方法:主要用来判断字符串是否由数字组成public static boolean isNumber(String str){//将字符串变成字符数组char [] result = str.toCharArray();for (int x = 0;x < str.length();x++){//将result数组里的字符与字符0~9之间进行比较if (result[x] < '0' || result[x] > '9'){return false;}}return true;}
}
3、字节与字符串之间的转换
package Test;public class Demo2 {public static void main(String[] args) {//字节与字符串的转换String str = "helloheh";//将字符串变成字节数组byte [] data = str.getBytes();for (int x = 0;x < data.length;x++){data[x] -= 32;}System.out.println(new String(data));System.out.println(new String(data,0,5));}}
3、字符串比较
等值比较:equals
大小比较:compareTo
package Test;public class Demo2 {public static void main(String[] args) {//字符串比较//1、public boolean euqals(String anObject):区分大小写的相等比较//进行字符串区分大小写等值比较String strA = "ABC";String strB = "abc";System.out.println(strA.equals(strB));//结果为false//2、public boolean equalsIgnoreCase(String anotherString):不区分大小的比较//进行字符串不区分大小写等值比较String strC = "ABC";String strD = "abc";System.out.println(strA.equalsIgnoreCase(strD));//结果为true//3、public int compareTo(String anotherString):进行字符串大小比较,该方法返回一个int型数据,该数据有三种取值:大于(>0)、小于(<0)、等于(=0)//进行字符串区分大小比较String strE = "mmh";String strF = "mmH";System.out.println(strE.compareTo(strF));//结果为32 说明:strE > strFSystem.out.println(strF.compareTo(strE));//结果为-32 说明:strF > strESystem.out.println("HELLO".compareTo("HELLO"));//结果为0 说明:"HELLO" = "HELLO"//4、public int compareToIgnoreCase(String str):不区分大小写进行字符串比较//进行字符串不区分大小比较String strG = "MMh";String strH = "mmH";System.out.println(strE.compareToIgnoreCase(strH));//结果为0 说明:strH = strG}}
4、字符串查找
package Test;public class Demo2 {public static void main(String[] args) {//字符串查找//1、public boolean contains(String s):判断子字符串是否存在(存在返回true,不存在返回false)//判断子字符串是否存在String str = "hello.csdn.dd";System.out.println(str.contains("dd"));//结果为trueSystem.out.println(str.contains("world"));//结果为false//2、public int indexOf(String str):从头查找指定字符串的位置,找不到返回-1,找到返回首字符的索引//判断字符串是否存在String str2 = "hello.csdn.dd";System.out.println(str2.indexOf("dd"));//结果为11System.out.println(str2.indexOf("world"));//结果为-1//3、public int indexOf(String str,int fromIndex):从指定位置由前向后查找指定字符串的位置//4、public int lastIndexOf(String str):从后向前查找指定字符串的位置String str3 = "hello.csdn.dd";System.out.println(str3.lastIndexOf("."));//结果为10System.out.println(str3.lastIndexOf("world"));//结果为-1//5、public int lastIndexOf(String str,int fromIndex):从指定位置由后向前查找指定字符串的位置//6、public boolean startsWith(String prefix):判断是否以指定的字符串开头//7、public boolean startsWith(String prefix,int toffset):从指定位置判断是否以指定的字符串开头//8、public boolean endsWith(String suffix):判断是否以指定的字符串结尾//判定是否已指定字符串开头或结尾String str4 = "**@@ello.csdn.dd##";System.out.println(str4.startsWith("**"));//结果为trueSystem.out.println(str4.startsWith("@@",2));//结果为trueSystem.out.println(str4.endsWith("##"));//结果为true}}
5、字符串替换
replaceAll():全部替换
replaceFirst():替换首个
通过只当内容进行字符串替换显示
package Test;public class Demo2 {public static void main(String[] args) {//字符串替换:通过只当内容进行字符串替换显示//1、public String replaceAll(String regex,String replacement):全部替换//2、public String replaceFirst(String regex,String replacement):替换首个String str = "hello.csdn.dd";System.out.println(str.replaceAll("l","x"));//结果:hexxo.csdn.ddSystem.out.println(str.replaceFirst("l","x"));//结果:hexlo.csdn.dd}}
6、字符串拆分
遇到拆分不了的字符,试试使用转义字符进行转义,可以根据字符索引进行截取(大多涉及逻辑计算)
package Test;public class Demo2 {public static void main(String[] args) {//字符串拆分:根据指定的字符串或者是表达式实现字符串的拆分,拆分完成的数据会以字符串数组的形式返回//1、public String[] split(String regex):按照指定的字符串全部拆分//字符串拆分处理String str = "hello world hello csdn";//按空格全部拆分String result [] = str.split(" ");for (int x = 0;x < result.length;x++){System.out.println(result[x]);}/*结果:helloworldhellocsdn*///2、public String[] split(String regex,int limit):按照指定的字符串拆分为指定的个数//字符串拆分处理String str2 = "hello world hello csdn";//按空格只拆分两个,后面不进行拆分String result2 [] = str2.split(" ",2);for (int x = 0;x < result2.length;x++){System.out.println(result2[x]);}/** hello* world hello csdn* *///若是遇到拆不了的情况,可以考虑转义String str3 = "hello.world.ello.csdn";//按空格只拆分两个,后面不进行拆分String result3 [] = str3.split("\\.");for (int x = 0;x < result3.length;x++){System.out.println(result3[x]);}/*结果:helloworldellocsdn*/}}
7、字符串截取
从一个完整的字符串之中截取出子字符串
package Test;public class Demo2 {public static void main(String[] args) {//字符串截取:从一个完整的字符串之中截取出子字符串,//1、public String substring(int beginIndex):从指定索引截取到结束//2、public String substring(int beginIndex,int endIndex):截取指定索引范围中的子字符串//观察子字符串的操作String str = "www.csdn.dd";System.out.println(str.substring(4));//结果:csdn.ddSystem.out.println(str.substring(4,6));//结果:cs//根据索引找到位置String str1 = "昵称-tel-里斯.div";int beginIndex = str1.indexOf("-",str1.indexOf("tel")) + 1;int endIndex = str1.lastIndexOf(".") ;System.out.println(str1.substring(beginIndex,endIndex));//结果:里斯}}
8、字符串格式化
类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)
package Test;public class Demo2 {public static void main(String[] args) {//格式化字符串:类似于c语言中的格式化输出语句,可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)//1、public static String format(String format,各种类型 ...args):根据指定结构进行文本格式化显示//格式化处理String name = "张三";int age = 18;double score = 98.765261;String str = String.format("姓名:%s、年龄:%d、成绩:%5.3f。",name,age,score);System.out.println(str);//结果:姓名:张三、年龄:18、成绩:98.765。}}
9、其他操作方法
package Test;public class Demo2 {public static void main(String[] args) {//其他操作方法//1、public String concat(String str):描述字符串的连接过程//字符串连接String str = "www.".concat("csdn");System.out.println(str);//结果:www.csdn//2、public String intern():字符串入池//3、public boolean isEmpty():判断是否为空字符串(不是null)//null和""的区别:null表示没有实例化对象,""表示有实例化对象,但是内容为空String str1 = "csdn";System.out.println(str1.isEmpty());//结果:falseSystem.out.println("www".isEmpty());//结果:false//4、public int length():计算字符串长度//5、public String trim():去除左右的空白符号String str2 = " hello csdn ";System.out.println(str2.length());System.out.println(str2);String newStr2 = str2.trim();System.out.println(newStr2.length());System.out.println(newStr2);/*结果:*20hello csdn 10hello csdn* *///6、public String toUpperCase():转大写//7、public String toLowerCase():转小写//String类里面提供有大小写转换,但是这种转换的特征是可以避免非字母的转换//大小写转换String str3 = "Hello World!!!";System.out.println(str3.toUpperCase());//结果:HELLO WORLD!!!System.out.println(str3.toLowerCase());//结果:hello world!!!//自定义编写首字母大写的方法,因为String类没有提供System.out.println(StringUtil.initcap("hello world"));//结果:Hello worldSystem.out.println(StringUtil.initcap("h"));//结果:H}}class StringUtil{public static String initcap(String str){//如果字符串等于空或者无内容,则原样返回字符串if (str == null || "".equals(str)){return str;}//如果str的长度为1,则调用大写的方法if (str.length() == 1){return str.toUpperCase();}//如果字符的长度即不为1,也不为空,则利用字符串截取第一位字符,进行大写转换,然后加上1到结尾的字符return str.substring(0,1).toUpperCase() + str.substring(1);}
}