String常用方法总结

和长度有关的方法

返回类型 方法名 作用

int length() 得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符)

和数组有关的方法

返回类型 方法名 作用

byte[] getBytes() 将一个字符串转换成字节数组

char[] toCharArray() 将一个字符串转换成字符数组

String[] split(String) 将一个字符串按照指定内容劈开,根据给定正则表达式的匹配拆分此字符串。

例如:

1String user="张三,1234 13673738888"; 2 String[] strs = user.split(",| ");//用“逗号”或“空格”进行分割

和判断有关的方法

返回类型 方法名 作用

boolean equals(String) 判断两个字符串的内容是否一模一样

boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的内容是否一模一样

boolean contains(String) 判断一个字符串里面是否包含指定的内容

boolean startsWith(String) 判断一个字符串是否以指定的内容开头

boolean endsWith(String) 判断一个字符串是否以指定的内容结尾

int compareTo(String ):按字典顺序比较两个字符串的大小,相等返回0,大于返回正数,小于返回负数。

int compareToIgnoreCase( ):比较两个字符串的大小,不考虑大小写

和改变内容有关的方法

和改变内容有关的方法,都不会直接操作原本的字符串 而是将符合条件的字符串返回给我们,所以注意接收

返回类型 方法名 作用

String toUpperCase() 将一个字符串全部转换成大写

String toLowerCase() 将一个字符串全部转换成小写

String replace(String,String) 将某个内容全部替换成指定内容

String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则

String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容

String substring(int) 从指定下标开始一直截取到字符串的最后,返回一个新的字符串,它是此字符串的一个子字符串。

String substring(int,int) 从下标x截取到下标y-1对应的元素,返回一个新字符串,它是此字符串的一个子字符串。(左包含右不包含)

String trim() 去除一个字符串的前后空格

和位置有关的方法

返回类型 方法名 作用

char charAt(int) 得到指定下标位置对应的字符

int indexOf(String) 得到指定内容第一次出现的下标,如果未出现该字符,则返回 -1。

int indexOf(int ch,int fromIndex): 在此对象表示的字符序列中第一次出现的大于或等于 fromIndex 的字符的索引;如果未出现该字符,则返回 -1。

int lastIndexOf(String) 得到指定内容最后一次出现的下标,如果未出现该字符,则返回 -1。

String方法练习:用不同的方法统计葡萄出现的次数

1public class TestString { 2 public static void main(String[]args) { 3 String str = "吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮"; //请统计葡萄 出现的次数 4 // String str = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数 5 // 第一种 6 String str1 = str.replace("葡萄", " "); 7 int index = str.indexOf("葡萄", 4); 8 char[]data = str1.toCharArray(); 9 int count = 0; 10 for (char a: data) { 11 if (a == ' ') { 12 count++; 13 } 14 } 15 System.out.println(count); 16 //第二种 17 /*int count = 0; 18 int x = 0; 19 while (x != -1) { 20 x = str.indexOf("葡萄"); 21 if (x != -1) { 22 count++; 23 str = str.replaceFirst("葡萄", ""); 24 } 25 } 26 System.out.println(count);*/ 27 //第三种 28 /* for (int x = 0; x < str.length(); x++) { 29 if (str.contains("葡萄")) { 30 str = str.replaceFirst("葡萄", ""); 31 } else { 32 System.out.println(x); 33 break; 34 } 35 }*/ 36 //第四种 37 /*String str1 = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数 38 String[]data = str1.split("葡萄"); 39 if (!str1.endsWith("葡萄")) { 40 //这里startsWith("葡萄")在split时,会在开头产生空串 41 System.out.println(data.length - 1); 42 } else { 43 System.out.println(data.length); 44 }*/ 45 //第五种 46 /*int count = 0; 47 int x = 0; 48 while (x != -1) { 49 x = str.indexOf("葡萄"); 50 if (x != -1) { 51 if ((x + 2) < str.length()) { 52 str = str.substring(x + 2); 53 } 54 count++; 55 } 56 } 57 System.out.println(count);*/ 58 //第六种 59 /* String str2 = str.replace("葡萄", ""); 60 int length = str2.length(); 61 System.out.println((str.length() - str2.length()) / 2);*/ 62 } 63 64}

 练习中文对编码的影响

1public class StringDemo { 2 public static void main(String[] args) { 3 String s="123456789中国"; 4 System.out.println(s.length()); //11 5 System.out.println(s.getBytes().length);//GBK下是13, UTF-8下是15 6 System.out.println(hasChinese(s)); 7 s="12中国asd湖12南6城市学院"; 8 print(s); 9 } 10 11 private static void print(String s) { 12 char[] ch=s.toCharArray(); 13 for(char c:ch){ 14 if((c+"").getBytes().length>1){//汉字的字节数大于1 15 System.out.println("中文字符:"+c); 16 }else if(c>='a'&&c<='z' || c>='A'&& c<='Z'){ 17 System.out.println("英文字符:"+c); 18 }else if(c>='0'&&c<='9'){ 19 System.out.println("数字:"+c); 20 } 21 } 22 } 23 24 private static boolean hasChinese(String s) { 25 if(s.getBytes().length>s.length()){//只有含有汉字时,字符转换的字节长度才会大于字符串长度 26 return true; 27 } 28 return false; 29 } 30}

练习正则表达式

1public class StringDemo2 { 2 public static void main(String[] args) { 3 //1、字符串比较大小 4 String s1="H234567中国"; 5 String s2="Hello Java"; 6 System.out.println("1、"+s1.compareTo(s2));// 返回两个字符串之差(第一个不同字符的差,即‘2’与‘e’的差: -51) 7 8 //2、字符串位置查找 9 String s3="adc256sadf"; 10 String s4="c2"; 11 System.out.println("2、"+s3.indexOf(s4));//2 12 13 //3、查找姓名中带“飞”字的人,查找姓“张”的人。 14 String[] names= { "张三", "张无忌", "赵敏", "张飞", "岳飞", "飞龙张" }; 15 System.out.print("3、带“飞”的人:"); 16 for(String name:names){ 17 if(name.indexOf("飞")>=0){ 18 System.out.print(name+" "); 19 } 20 } 21 System.out.println(); 22 System.out.print(" 姓“张”的人:"); 23 for(String name:names){ 24 if(name.indexOf("张")==0){ 25 System.out.print(name+" "); 26 } 27 } 28 System.out.println(); 29 30 // 4、查找扩展名为“.java”的文件名。 31 String[] filenames = { "aa.java", "cc.doc", "34.bat", "33.java.c", 32 "java.exe", "c:\\a\\a.java" }; 33 String ss=".java"; 34 System.out.print("4、扩展名为.java文件名:"); 35 for(String name:filenames){ 36 if(name.endsWith(ss)){ 37 System.out.print(name+" "); 38 } 39 } 40 System.out.println(); 41 42 //5、substring() 43 String c ="abcd".substring(2,3);// 相当于数学中的:[2,3) 44 System.out.println("5、“abcd”.substring(2,3)= "+c); 45 46 //6、split() 47 String user="张三,1234,13673738888"; 48 String strs[] = user.split(","); 49 System.out.print("6、"); 50 for(String s:strs){ 51 System.out.print(s+" "); 52 } 53 System.out.println(); 54 user="张三,1234 13673738888"; 55 strs = user.split(",| ");//7、用“逗号”或“空格”进行分割 56 System.out.print("7、"); 57 for(String s:strs){ 58 System.out.print(s+" "); 59 } 60 System.out.println(); 61 user="aa.bb.cc,dd,ee fff"; 62 strs = user.split("\\.|,| ");//8、“.”号是特殊字符,因此要用转义字符,而且要加两个 63 //strs = user.split("[.]|,| ");//“[]”也是转义字符 64 System.out.print("8、"); 65 for(String s:strs){ 66 System.out.print(s+" "); 67 } 68 System.out.println(); 69 String us ="张三|1234|13673738888"; 70 //strs = us.split("\\|");//9、“|”不能用这种转义的方式分割,这种情况下可先采用字符替换 71 us=us.replace("|", ",");//replace()返回的是一个新的字符串 72 strs = us.split(","); 73 System.out.print("9、"); 74 for(String s:strs){ 75 System.out.print(s+" "); 76 } 77 } 78}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang