首页 > 其他分享 >String类的常用方法

String类的常用方法

时间:2022-10-29 19:59:13浏览次数:47  
标签:常用 String System 字符串 strA 方法 public out

  • String底层实现
    通过查看字符串相关的源码,可以知道在jdk1.8及以前,字符串在底层是通过字符串数组进行包装处理的,在jdk1.9以后字符串是由字节数组进行包装处理的

在java中也提供了相应的方法和构造方法进行以上的转化操作
1.
方法定义: (构造)public String(char[]value)将字符数组转化成字符串
(构造)public String(char[]value,int offset,int count)将指定范围的字符数组转化成字符串
(普通)public char[]toCharArray()将一个字符串转化成字符数组
(构造)public String(byte[]value)将字节数组转化成字符串
(构造)public String(byte[]value,int offset,int count)将指定范围的字符数组转化成字符串
(普通)public byte[]getBytes()将字节数组转化成字符串

简单举例

  • 字符数组和字符串相互转化
//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
		char[]a=strA.toCharArray();//字符串转为字符数组
		for(int i=0;i<a.length;i++)
			System.out.printf("%c ",a[i] );//h e l l o
		String strB=new String(a);//将a[]转化为字符串
		System.out.printf("%s\n",strB);//hello
		String strC=new String(a,0,3);//将下标0-1的数组内容转化为字符串(注意不包含最后下标)
		System.out.println(strC);//hel
		
	    
	}
}
  • 字符串和字节数组相互转化
//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
		byte[]a=strA.getBytes();//将字符串转化为字节数组
		System.out.println(new String(a));//将字符数组全部转化成字符串 结果:hello
		System.out.println(new String(a,0,3));//将指定范围的字节数组转化成字符串 结果:hel
	    
	}
}

2取得字符串的长度 public int length()

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
		System.out.println(strA.length());//5
	}
}

注意:这里容易和求数组长度的length混淆,字符串的length()带有括号是一个函数,数组的length没有括号是一个内置标识符

取出字符串特定位置的字符 public char charAt(int index)参数为字符串该位置的索引

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
	    System.out.println(strA.charAt(4));//o
	}
}

4.查找指定的字符串中指定的字符串是否存在 找到则返回该位置的下标 没有找到则返回-1
public int indexOf(String str)从头开始查找
public int indexOf(String str,int fromIndex)//从指定位置开始查找

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
	    System.out.println(strA.indexOf("ho"));//-1
		System.out.println(strA.indexOf("h",1));//该处从下标为1开始找,找不到h 返回-1
	}
}

注意:该处从指定位置开始查找,但下标不是从指定位置开始算,还是从头开始算

5.清除字符串左右两端的空格
public String trim()

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="    he   llo     ";
	   System.out.println(strA.trim());//he   llo
	}
}

注意:只能清除左右两端的空格,中间空格不能清除(亲测)

6.字符串分割
public String[] split(String regex) 该处其实是根据匹配给定的正则表达式来拆分
split(String regex, int limit)根据给定的正则表达式来拆分 限制拆分的后数组的长度
没有设置拆分次数:


//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello world huat";
		String[]a=strA.split(" ");//以空格为基准分割
		for(String str:a)
			System.out.print(str+",");//hello,world,huat,
		
		
	}
}

部分拆分 设置拆分的长度

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello world huat";
		String[]a=strA.split(" ",2);//以空格为基准分割 如果该长度超过了数组的长度则会实现全部拆分不会报错
	    for(String str:a){
			System.out.print(str+",");//hello,world huat,
		}	
	 
		
		
	}
}

注意:该处将其拆分成长度为2,不是拆2次后将huat丢弃

  • 常见用法
//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello world huat";
		String[]a=strA.split("");
		for(String str:a){
			System.out.print(str+",");//h,e,l,l,o, ,w,o,r,l,d, ,h,u,a,t,
		}
		
		
	}
}

该处直接实现单个字符从全部拆分

  • 如果发现有些字符串无法拆分就必须通过"\"进行转义处理(该处会正则表达式有关)
//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="13.34.345.34.56";
		String[]a=strA.split(".");//以.进行拆分处理
		for(String str:a){
			System.out.print(str);//该处没有没有结果表明没有拆分成功
		}
		
	}
}

用转义字符进行转义

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="13.34.345.34.56";
		String[]a=strA.split("\\.");//以.进行拆分处理
		for(String str:a){
			System.out.print(str);//13343453456
		}
		
	}
}

7.字符串的截取
public String substring(int beginIndex)从指定位置开始一直去到尾进行字符串的截取
public String substring(int beginIndex,int end)截取字符串的开始点到结束点

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="hello";
		String strC=strA.substring(0);
		String strB=strA.substring(0,1);//该处不包含结束点
		System.out.println(strC);//hello
		System.out.println(strB);//h
		
	}
}

8.将字符串全部转化为大写或者全部转化为小写
public String toUpperCase()全部转化为大写
public String toLowerCase()全部转为小写

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="eDGVrevR";
		String strB=strA.toUpperCase();//转为大写
		String strC=strA.toLowerCase();//转为小写
		System.out.print(strB);//EDGVREVR
		System.out.print(strC);//edgvrevr
		
	}
}

9.判定是否以特定的字符开头或者结尾
public boolean startsWith(String prefix)判断是否以特点的字符开头
public boolean endsWich(String suffix)判断是否以特定的字符结尾

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="eDGVrevR";
		System.out.println(strA.startsWith("e"));//判断是否以e开头  结果:true
		System.out.println(strA.endsWith("a"));//判断是否以a结尾   结果:false
		
	}
}

10.判断字符串的内容是否相等
public boolean equals(String str)判断字符串的内容是否相等
public boolean equalsIgnoreCase(String str)不区分大小写比较字符串是否相等

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		String strA="eDGVrevR";
		String strB="edgvrevr";
		System.out.println(strA.equals(strB));//区分大小写比较  false
		System.out.println(strA.equalsIgnoreCase(strB));//不区分大小写比较  ture
		
	}
}

11.字符串的替换
public String replaceAll(String regex,String replacement)将前面的字符串替换为后面的字符串

//验证String内置的方法
public class StringTest1{
	public static void main(String[]args){
		
		String strB="edgvrevr";
		String strA=strB.replaceAll("r","hhhhh");
		System.out.println(strA);//edgvhhhhhevhhhhh
		
	}
}

标签:常用,String,System,字符串,strA,方法,public,out
From: https://www.cnblogs.com/swtaa/p/16835767.html

相关文章

  • Oracle 12c、18c、19c CDB、PDB常用命令
    一、CDB、PDB常用管理命令查看PDB信息(在CDB模式下)showpdbs--查看所有pdbselectname,open_modefromv$pdbs为PDB信息视图selectcon_id,dbid,guid,name,open_mode......
  • java常用API--->Math数学工具
    介绍Math类是java.lang包中的类,它支持算术运算如平方根,计算绝对值等。算术计算Math.sqrt(Number);//计算Number的平方根Math.cbrt(Number);//计算Number的立方根Math.......
  • 达梦数据库运维常用基础SQL(三)
    作为数据库DBA运维人员,经常需要查询和监控数据库的运行情况,定位某些问题,为此我们整理出部分常用SQL,帮助大家更好的使用达梦数据库。本次整理出数据库对象信息、用户、权限、......
  • 达梦数据库运维常用基础SQL(二)
    作为数据库DBA运维人员,经常需要查询和监控数据库的运行情况,定位某些问题,为此我们整理出部分常用运维SQL,帮助大家更好的使用达梦数据库。本次整理出数据库、表和索引等相关维......
  • 达梦数据库运维常用基础SQL(一)
    作为数据库DBA运维人员,经常需要查询和监控数据库的运行情况,定位某些问题,本章整理出部分常用运维SQL,帮助大家更好的使用达梦数据库。1、查询数据库版本:查询数据库大版本号:Se......
  • 数组常用方法
    一、数组常用方法1.unshift(),从首位添加数据至原数组中,返回新数组的长度2.push(),从末位添加数据至原数组中,返回新数组的长度3.shift(),去掉数组的第一个......
  • window 将一个文件夹映射成为一个磁盘方法
    1 运行打开注册表编辑器regedit2找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System然后把EnableLUA数值改为0然后重启电......
  • Qt+Opencv应用程序计时/度量(测量速度)的三种方法
    OpenCV计时/度量方法(测量速度),尽量远离经验法则,请试着用你的测量或者任何可信语言的测量参考作为你的经验法则的来源:可以使用OPenCV中的TickMeter类或getTickFrequency函数......
  • 7种数组去重方法
    一、设定原数组 constarr=[22,22,'ture','ture',false,false,undefined,undefined,null,null,NaN,NaN,'NaN',0,0,'a','a',15,15,true,true,{},......
  • 宝塔面板出现“require(): open_basedir restriction in effect. ”的解决方法
    宝塔面板出现“require():open_basedirrestrictionineffect.”的解决方法1、只需要在相应的网站目录,勾选掉防跨站攻击(open_basedir)即可!2、必须重启Php......