String常用的方法

现在笔试一般都涉及到字符串的操作,所以特意写一下String常用的方法,避免做不出来的尴尬。下面进入正文:

1.length(),通过这个可以获得字符串的长度,例如:

String aString=("aaBdaaAbBBbdeFFFfffEdeEfswcacsadwaasdwdadasfffsadsaw");
System.out.println(aString.length());
//输出52

2.charAt() 方法,通过这个方法可以获得获得字符串中指定位置的字符。这个方法用的比较多例如:

String aString=("AaBdaaAbBBbdeFFFfffEdeEfswcacsadwaasdwdadasfffsadsaw");
System.out.println(aString.charAt(3));
//输出d
//.charAt()从0开始的

3 getChars
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
sourceStart指定开始的下标,sourceEnd指定了结束的下一个的下标(复制的部分为sourceStart到sourceEnd-1), target[]指明复制的部分存到 target[]中,targetStart指明复制的字符串在target[]中的起始位置,例子:

		String aString=("AaBdaaAbBBbdeFFFfffEdeEfswcacsadwaasdwdadasfffsadsaw");
		char[] cString=new char[20];
		aString.getChars(0,20,cString, 0);
		for(int c=0;c<cString.length;c++) {
			System.out.print(cString[c]);
		}
		//输出AaBdaaAbBBbdeFFFfffE

4.getBytes()
将一个字符串转化为一个字节数组byte[]的方法。
getBytes(Charset charset);
5.toCharArray()
String.toCharArray 方法 ,作用:将字符串转换为字符数组。

5.equals()equalsIgnoreCase() 比较两个字符串
一个是字符相同,一个是不区分字符的大小写相同

	String aString="aaBBcc";
	String bString="AAbbCC";
	 System.out.println(aString.equals(bString));//false
    System.out.println(aString.equalsIgnoreCase(bString));//true

6.regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。
  boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)
  boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)

7.startsWith()和endsWith()  startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

	String aString="aaBBcc";
    System.out.println(aString.startsWith("aa")); //true
    System.out.println(aString.endsWith("cc"));  //true

8.compareTo()和compareToIgnoreCase() 比较字符串
一个是字符比较,一个是不区分字符的大小写比较。

	String aString="aaBBcc";
	String bString="AAbbCC";
    System.out.println(aString.compareTo(bString));//32
    System.out.println(aString.compareToIgnoreCase(bString));//0

ps:compareTo()它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型,a的ascii码是97,A的ascii码是65,所以输出32,两个方法相同就会返回0.不同就会返回第一个不同的字符的ascii码之差。

9.indexOf()lastIndexOf()
  indexOf() 查找字符或者子串第一次出现的地方。
  lastIndexOf() 查找字符或者子串是后一次出现的地方。

	String aString="AaBBccddBBvcVBBBBBeE";
    System.out.println(aString.indexOf("BB"));//2
    System.out.println(aString.lastIndexOf("BB"));//16

PS:可以使用indexOf()方法去查找某个字符串出现了多少次,例如:

		String a="****hello**hello****hello***hellohello****hello";
		int num=0;
		String str="hello";
		int n=str.length()-1;
		for(int i=0;i<=a.length();i++)
		{
			if(a.indexOf(str, i)>=0) {
				i=a.indexOf(str,i)+n;
				
				num++;
			}
		}
		System.out.println(num);  

10.substring()
它有两种形式,第一种是:String substring(int m) 从第m个位置开始截取
        第二种是:String substring(int m,int n) 从第m个位置开始截取,第n个位置暂停截取(结果不包括最后第n个位置的内容),例如:

	String aString="AaBBccddBBvcVBBBBBeE";
    System.out.println(aString.substring(2));//BBccddBBvcVBBBBBeE
    System.out.println(aString.substring(2, 5));//BBc

11.concat()
作用是 连接两个字符串,例如:

	String aString="AaBBccddBBvcVBBBBBeE";
	String bString="123456";
    System.out.println(aString.concat(bString));//AaBBccddBBvcVBBBBBeE123456

12.replace() 替换
  用一个字符或一个字符串去替换原本的字符或者字符串。

	String aString="AaBBccddBBvcVBBBBBeE";
    System.out.println(aString.replace("BB", "66"));//Aa66ccdd66vcV6666BeE
    //第一个参数是被替换的字符,第二个表示替换的字符

13.trim() 去掉起始和结尾的空格
功能除去字符串开头和末尾的空格或其他字符。
函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。
如果任何参数的值为NULL,Trim() 函数返回NULL。

	String aString="  AaBBccddBBvcVBBBBBeE  ";
	String bString=null;
    System.out.println(aString);//  AaBBccddBBvcVBBBBBeE  
    System.out.println(aString.trim());//AaBBccddBBvcVBBBBBeE
    System.out.println(bString.trim());//报错,java.lang.NullPointerException

14.valueOf() 转换为字符串
可以把boolean、char、int等多种类型数据转换成字符串,例如:

	int a=123;
	System.out.println(String.valueOf(a));//123

15 . toLowerCase() 方法用于把字符串转换为小写。
16 . toUpperCase() 方法用于把字符串转换为大写。

	String aString="AaBBccddBBvcVBBBBBeE";
	System.out.println(aString.toLowerCase());//aabbccddbbvcvbbbbbee
	System.out.println(aString.toUpperCase());`//AABBCCDDBBVCVBBBBBEE

17.split():
可以把字符串中的分隔符去掉,特殊情况有( [ { / ^ - $ | } ] ) ? * + .
上面这几种情况都需要加\来转义,例如
单个分隔符:

    String aString="192|168|1|1";
    String[] split=aString.split("\\|");
    System.out.println(split[0]+split[1]+split[2]+split[3]);// 19216811

一般的不需要这样,例如:

    String aString="192a168a1a1";
    String[] split=aString.split("a");
    System.out.println(split[0]+split[1]+split[2]+split[3]);//19216811

多种分隔符的时候:

    String aString="192a168^1#1";
    String[] split=aString.split("a|\\^|#");
    System.out.println(split[0]+split[1]+split[2]+split[3]);

PS:不同分隔符使用|分开

18 . StringBuffer:
StringBuffer在字符串处理方面也有很多的用法,所以顺便也记录下:
(1)length()和capacity(),length()可以获得当前StringBuffer的长度,capacity()可以获得整个的分配空间。
(2)ensureCapacity() 设置缓冲区的大小
   void ensureCapacity(int capacity)
(3) setLength(0);有时候需要将StringBuffer清空,setLength(0)这个方法比较好,时间比较快。
(4)charAt()和setCharAt()
   char charAt(int where)//获取字符
   void setCharAt(int where,char ch)//把where处的字符换成ch
(5)getChars()
   void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
   //复制字符串到target[]
(6)append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。
   例:int a=42;
      StringBuffer sb=new StringBuffer(40);
      String s=sb.append(“a=”).append(a).append("!").toString();

(7)insert() 插入字符串
    StringBuffer insert(int index,String str)
    StringBuffer insert(int index,char ch)
    StringBuffer insert(int index,Object obj)
    index指定将字符串插入到StringBuffer对象中的位置的下标。
(8)reverse() 颠倒StringBuffer对象中的字符
    stringBuffer.reverse()
(9)delete() 和deleteCharAt() 删除字符
    StringBuffer delete(int startIndex,int endIndex)
    StringBuffer deleteCharAt(int loc)
(10)replace() 替换
    StringBuffer replace(int startIndex,int endIndex,String str)
(11)substring() 截取子串
    String substring(int startIndex)
    String substring(int startIndex,int endIndex)
   
以上是学习笔记,参考了https://blog.csdn.net/weixin_43121452/article/details/102922059

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值