String类常见的20种方法

编程入门 行业动态 更新时间:2024-10-26 12:24:46

String类常见的20<a href=https://www.elefans.com/category/jswz/34/1766985.html style=种方法"/>

String类常见的20种方法

new与不new的区别?

	String x =“ok”;//地址一样(常量池查找机制)String y =“ok”;Sytem.out.println(x==y);//tureString a=new String(“ok”);//new 一次开辟一次空间,两个地址不一样String b=new String(“ok”);Sytem.out.println(x==y);//false

String 和StringBuffer/StringBuilder的区别?

StringBuffer和StringBuilder在第一次创建对象的时候底层会多预留16块缓冲区【目的:追加连接效率高】

String 有两种创建方式,new与不new,StringBuffer和StringBuilder只有一种:new

String类是不可改变类,所有的方法都不会直接处理原本的字符串,只是将符合条件的字符串返回给我们,需要我们对他进行接收;

StringBuffer和Stringbuilder里面的所有的方法都是直接处理原本的字符串,不需要接收;

StringBuffer同一时间允许一个线程进行访问,效率较低,但不会出现并发错误

StringBuilder同一时间允许多个线程进行访问,效率较高,但是可能会出现并发错误

StringBuffer的常用方法

返回值类型方法名称描述
intlength()获取当前StringBuffer中的字符的个数
intcapacity()获取当前StringBuffer的容量
intindexOf(String str)查找某个字符串str在StringBuffer中的索引位置,找到返回索引,找不到返回-1
StringBufferappend(…)将指定的参数的字符串追加到序列中
StringBufferdelete(int start, int end)从start的位置开始删除字符,一直删除到索引为end的位置(包含start,不包含end)
voidsetCharAt(int index,char c)使用字符c替换指定的索引index位置上的字符

注:append(…)中的…代表各种类型的参数,如append(int i)、append(char c)、append(String str)等

String 类常见的20种方法:

返回类型方法签名作用
intlength()
(长度相关)
得到字符个数
byte[]getBytes()
(和数组相关)
将一个字符串转换成字节数组
一个英文对应一个正数字节
一个中文对应两个负数字节
char[]toCharArray()
(和数组相关)
将一个字符串转换成字符数组
String[]split(String)
(和数组相关)
将一个字符串按照指定的字符劈开
booleanequals(String)
(和判断相关)
判断两个字符串内容是否相等
booleanequalsIgnoreCase(String)忽略大小写的比较字符串是否相等
booleancontains(String)判断一个字符串是否包含指定的字符串
booleanstartsWith(String)判断一个字符串是否以指定的字符串开头
booleanendsWith(String)判断一个字符串是否以指定的字符串结尾
StringtoUpperCase()将一个字符串全部转变为大写字母
StringtoLowerCase()将一个字符串全部转变为小写字母
Stringreplace(StringA,StringB)将一个字符串StringA替换为StringB
StringreplaceAll(StringA,StringB)将一个字符串StringA替换为StringB,支持正则表达式
StringreplaceFirst(StringA,StringB)将一个字符串第一次出现的StringA替换为StringB
Stringtrim()去除一个字符串的前后空格
Stringsubstring(int x,int y)将一个字符串从x位置截取到y-1位置
Stringsubstring(int x)将一个字符串从x位置截取到最后
charcharAt(int x)找到下标x对应的元素
intindexOf(String)找到某个字符串第一次出现的下标
intlastIndexOf(String)找到某个字符串最后一次出现的下标

equals(String):

		Student[]  data=new Student[5];data[0]=new Student("张三",22,78);data[1]=new Student("老四",18,70);data[2]=new Student(null,18,95);data[3]=new Student("王五",20,31);data[4]=new Student("张三",18,66);
//将18岁张三的成绩打出来
for(Student stu:data){/*排空操作if(stu.name!=null&&stu.name.equals("张三")&&stu.age==18){System.out.println(stu.score);}*///固定内容放前面,有效避免空指针异常if("张三".equals(stu.name)&&stu.age==18){System.out.println(stu.score);}

getBytes():

public class Exec3{public static void main(String[] args){String str="ladygaga的坏罗曼史";byte[] data=str.getBytes();/*int count=0;for(byte x:data){if(x<0){count++;}}System.out.println("汉字出现:"+count/2+"次");*/System.out.println(data.length-str.length());//字节减去字符的个数就是汉字多出来的个数
}//一个中文和英文都是一个字符
}//一个中文两个字节,一个英文一个字节

判断一个字符串是否全是数字

public class Exec5{public static void main(String[] args){System.out.println(check3("123木头人"));System.out.println(check3("etoak666"));System.out.println(check3("72896"));System.out.println(check3("4y7r437r40"));
}
public static boolean check(String str){return str.replaceAll("[0-9]","").length()==0;}public static boolean check2(String str){char[] data=str.toCharArray();int count=0;for(char x:data){if(x>='0'&&x<='9') count++;}return	count==data.length;	}public static boolean check3(String str){char[] data=str.toCharArray();for(char x:data){if(x<'0' || x>'9') {return false;}}return	true;	}
}

例1: 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮

​ (统计葡萄个数)

public class Grape{public static void main(String[] args){String str="吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮";count1(str);count2(str);count3(str);count4(str);count5(str);count6(str);
}public static void count1(String s){int count =0;for(int i=0;i<s.length();i++){if( s.substring(i, i+1).equals("葡")){count++;}
}System.out.println(count);}//将字符串打碎,判断数组前一个字符是不是葡,后一个字符是不是萄,是的话计数器加一public static void count2(String s){char[] data=s.toCharArray();int count=0;for(int i=0;i<data.length-1;i++){if(data[i]=='葡'&&data[i+1]=='萄'){count++;}}System.out.println(count);}//将葡萄替换成萄,得到新的字符串,长度减一public static void count3(String s){String x=s.replaceAll("葡萄","葡");System.out.println(s.length()-x.length());}//不断判断字符串里是否还有葡萄,有就将第一次出现的葡萄替换成核桃,计数器加一public static void count4(String s){int count=0;while(s.contains("葡萄")){s=s.replaceFirst("葡萄","核桃");count++;}System.out.println(count);}//将字符串按照葡萄劈开,看剩下的 段数,段数减一public  static  void  count5(String s){s +="a";String[] str =s.split("葡萄");System.out.println(str.length-1);}public  static  void  count6(String s){int count=0;while(s.contains("葡萄")){s=s.substring(s.indexOf("葡萄")+2);count++;}System.out.println(count);}
}

例2:将一个字符串里第一次出现的非重复元素打印出来

public class Exec13{public static void main(String[] args){String str = "swwiss";//将第一个非重复元素打印出来 -》 w/*遍历字符串中的每一个元素,将它在字符串第一次出现的坐标与最后一次的坐标对比,一样则只出现一次*/for(int i=0;i<str.length();i++){char x=str.charAt(i);if(str.indexOf(x)==str.lastIndexOf(x)){System.out.println(x);break;}}print(str);}
/*判断删除首字母后的字符串长度是否比原来字符串长度少一,
少一则表示该字母只出现一次*/public static void print(String str){while(str.length()!=0){int x=str.length();String szm=str.substring(0,1);str=str.replace(szm,"");int y=str.length();if(x-y==1){System.out.println(szm);break;}}}}

例3:将所有第一次出现的字母打印出来

public class Exec7{public static void main(String[] args){String str = "helloWorld";//将所有第一次出现的字母打印出来//heloWrd//比较坐标char[] data=str.toCharArray();for(int i=0;i<data.length;i++){if( i==str.indexOf(data[i])){System.out.print(data[i]);}}System.out.print("\n");prin1(str+"\n");prin2(str);}// 将首字母打印,将与首字母相同的后续字母删掉public  static void prin1(String str){while(str.length()!=0){String szm=str.substring(0,1);System.out.print(szm);str=str.replace(szm,"");}}
//新建字符串,将新字符串没有的老字符串中字符追加在新字符串中public  static void prin2(String str){char[] data=str.toCharArray();String temp="";for(char x:data){if(!temp.contains(x+"")){temp+=x;}}System.out.println(temp);}}

更多推荐

String类常见的20种方法

本文发布于:2024-03-10 14:29:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728230.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:种方法   常见   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!