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 > strF
System.out.println(strF.compareTo(strE));//结果为-32 说明:strF > strE
System.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"));//结果为true
System.out.println(str.contains("world"));//结果为false
//2、public int indexOf(String str):从头查找指定字符串的位置,找不到返回-1,找到返回首字符的索引
//判断字符串是否存在
String str2 = "hello.csdn.dd";
System.out.println(str2.indexOf("dd"));//结果为11
System.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("."));//结果为10
System.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("**"));//结果为true
System.out.println(str4.startsWith("@@",2));//结果为true
System.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.dd
System.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]);
}
/*结果:
hello
world
hello
csdn*/
//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]);
}
/*结果:
hello
world
ello
csdn*/
}
}
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.dd
System.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());//结果:false
System.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);
/*结果:
*20
hello csdn
10
hello 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 world
System.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);
}
}