和长度有关的方法

返回类型 方法名 作用

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

和数组有关的方法

返回类型 方法名 作用

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

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

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

例如:

  String user="张三,1234 13673738888";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方法练习:用不同的方法统计葡萄出现的次数

public class TestString {public static void main(String[]args) {String str = "吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮"; //请统计葡萄 出现的次数// String str = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数// 第一种String str1 = str.replace("葡萄", " ");int index = str.indexOf("葡萄", 4);char[]data = str1.toCharArray();int count = 0;for (char a: data) {if (a == ' ') {count++;}}System.out.println(count);//第二种/*int count = 0;int x = 0;while (x != -1) {x = str.indexOf("葡萄");if (x != -1) {count++;str = str.replaceFirst("葡萄", "");}}System.out.println(count);*///第三种/* for (int x = 0; x < str.length(); x++) {if (str.contains("葡萄")) {str = str.replaceFirst("葡萄", "");} else {System.out.println(x);break;}}*///第四种/*String str1 = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //请统计葡萄 出现的次数String[]data = str1.split("葡萄");if (!str1.endsWith("葡萄")) {//这里startsWith("葡萄")在split时,会在开头产生空串System.out.println(data.length - 1);} else {System.out.println(data.length);}*///第五种/*int count = 0;int x = 0;while (x != -1) {x = str.indexOf("葡萄");if (x != -1) {if ((x + 2) < str.length()) {str = str.substring(x + 2);}count++;}}System.out.println(count);*///第六种/* String str2 = str.replace("葡萄", "");int length = str2.length();System.out.println((str.length() - str2.length()) / 2);*/}}

练习中文对编码的影响

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

练习正则表达式

public class StringDemo2 {public static void main(String[] args) {//1、字符串比较大小String s1="H234567中国";String s2="Hello Java";System.out.println("1、"+s1.compareTo(s2));// 返回两个字符串之差(第一个不同字符的差,即‘2’与‘e’的差:   -51)//2、字符串位置查找String s3="adc256sadf";String s4="c2";System.out.println("2、"+s3.indexOf(s4));//2//3、查找姓名中带“飞”字的人,查找姓“张”的人。String[] names= { "张三", "张无忌", "赵敏", "张飞", "岳飞", "飞龙张" };System.out.print("3、带“飞”的人:");for(String name:names){if(name.indexOf("飞")>=0){System.out.print(name+"  ");}}System.out.println();System.out.print("  姓“张”的人:");for(String name:names){if(name.indexOf("张")==0){System.out.print(name+"  ");}}System.out.println();// 4、查找扩展名为“.java”的文件名。String[] filenames = { "aa.java", "cc.doc", "34.bat", "33.java.c","java.exe", "c:\\a\\a.java" };String ss=".java";System.out.print("4、扩展名为.java文件名:");for(String name:filenames){if(name.endsWith(ss)){System.out.print(name+"  ");}}System.out.println();//5、substring()String c ="abcd".substring(2,3);//  相当于数学中的:[2,3)System.out.println("5、“abcd”.substring(2,3)= "+c);//6、split()String user="张三,1234,13673738888";String strs[] = user.split(",");System.out.print("6、");for(String s:strs){System.out.print(s+"  ");}System.out.println();user="张三,1234 13673738888";strs = user.split(",| ");//7、用“逗号”或“空格”进行分割System.out.print("7、");for(String s:strs){System.out.print(s+"  ");}System.out.println();user="aa.bb.cc,dd,ee fff";strs = user.split("\\.|,| ");//8、“.”号是特殊字符,因此要用转义字符,而且要加两个//strs = user.split("[.]|,| ");//“[]”也是转义字符System.out.print("8、");for(String s:strs){System.out.print(s+"  ");}System.out.println();String us ="张三|1234|13673738888";//strs = us.split("\\|");//9、“|”不能用这种转义的方式分割,这种情况下可先采用字符替换us=us.replace("|", ",");//replace()返回的是一个新的字符串strs = us.split(",");System.out.print("9、");for(String s:strs){System.out.print(s+"  ");}}
}

转载于:https://www.cnblogs.com/leilong/p/8629620.html

String常用方法总结相关推荐

  1. 小汤学编程之JAVA基础day10——常用类(二):String常用方法、正则、StringBuffer和StringBuilder、Math和Random类、日期类和数字类

    一.String常用方法 二.正则表达式 1.基本     2.常用     3.高级 三.StringBuilder和StringBuffer类 1.区别     2.常用方法     3.继承结构 ...

  2. 更高效地刷OJ——String常用方法(一)

    因为常用方法较多,所以分为3篇 1.length() : 返回字符串长度,此处的length有别于数组中的length数组中的length为属性,此处的length为方法. 2.charAt() :将 ...

  3. String常用方法API

    String类 1.创建字符串对象--String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串 1)String s ="Hello"; s引用静态区的字符串字面 ...

  4. StringBuffer 和String常用方法

    StringBuffer 常用方法 在字符串末尾添加各种类型: public StringBuffer append(各种类型) 在某个位置添加各种类型: public StringBuffer in ...

  5. java string 常用方法_String类的12个常用方法

    1.用字符数组value创建一个String对象 方法: public String(char[] value) 实例: char[] value ={"a","b&qu ...

  6. [JAVA] String常用方法

    近期学习java,发现String有很多好用并且常用的方法,这里取几个较为常用的做下笔记! 1. length()  获得字符串长度 String a = "Hello World!&quo ...

  7. String常用方法大全(深入源码层面分析)

    1 构造方法类型 String(String original):把字符串数据封装成字符串对象 String(char[] value):把字符数组的数据封装成字符串对象 String(char[] ...

  8. JavaScript字符串String常用方法介绍

    JavaScript字符串在底层是一个字符串数组,比如hello字符串在底层是["h","e","l","l",&quo ...

  9. java String 常用方法集合

    String a = "abc"; String b = "abc"; a==b ;//返回true,因为a,b指向的是同一个地址 String a = new ...

最新文章

  1. python统计窗口函数怎么处理_python移动窗口函数
  2. c#如何用一个程序打开另一个程序(如:窗体的注销重启)
  3. (转)python requests 高级用法 -- 包括SSL 证书错误的解决方案
  4. 架构师之路 — 分布式系统 — Protocol Buffers 序列化协议
  5. numpy np.polyfit()(最小二乘多项式拟合曲线)(有待进一步研究)
  6. C++和Python,JSON文件的读取和保存
  7. js正整数正则表达式
  8. 通过JS改变框架的src
  9. 关于flymcu烧录stm32芯片超时的问题解决
  10. 项目开发文档是必须的
  11. AliSQL-5.6.32编译安装
  12. 学生信息管理系统html界面,学生信息管理系统jsp课程设计.doc
  13. 金融银行测试面试题:网上银行转账是怎么测的?
  14. pb语言是什么计算机语言,pb编程语言
  15. 深度学习小笔记04-魏秀参《解析深度学习-卷积神经网络原理与视觉实践》
  16. python大数据读取分析_python 大数据读取
  17. 肌酐研究之Biovision肌酐合成试剂盒
  18. django请求生命周期,FBV和CBV,ORM拾遗,Git
  19. 评价视频/图片质量的3个工具:PSNR,SSIM,VMAF和(MOS)
  20. 2017.5.27测试 3. 逃避系统警察

热门文章

  1. linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit
  2. [luogu2576 SCOI2010] 幸运数字 (容斥原理)
  3. dev grid把一列通过选择框进行编辑
  4. redis 3.0 集群__数据迁移和伸缩容
  5. HTML布局篇之双飞翼(圣杯)布局
  6. Java虚拟机JVM学习05 类加载器的父委托机制
  7. android double比较大小吗,java – Android – 比较方法违反了它的一般...
  8. 二进制安装mysql集群_基于二进制安装Cloudera Manager集群
  9. leetcode算法题--从尾到头打印链表
  10. OVS DPDK--介绍(一)