首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java——String类常用方法总结,看这一篇就够啦(比较、查找、截取、替换、拆分、其他)

Java——String类常用方法总结,看这一篇就够啦(比较、查找、截取、替换、拆分、其他)

作者头像
Winter_world
发布2020-09-25 10:40:22
4.3K0
发布2020-09-25 10:40:22
举报

1、字符与字符串

很多编程语言都会用字符数组描述字符串,Java也有类似概念,String类中有一系列字符相关的操作方法:

序号

方法名称

类型

描述

1

public String(char[] value)

构造

将全部的字符数组作为String的内容

2

public String(char[] value,intt offset,int count)

构造

将部分字符数组变为字符串,设置字符数组的开始索引与使用个数

3

public char charAt(int index)

普通

返回指定索引位置的字符

4

public char[] toCharArray()

普通

将字符串以字符数组的形式返回

【举例】:字符串与字符数组间的转换

        String str = "hello";
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            Log.d("TAG",data[x]+"、");
        }

字符串转换为字符数组后,可针对其中每一个字符进行操作,比如将小写字母转换为大写字母:

        String str = "helloworld";
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            data[x] -=32; //变成大写
        }
        Log.d("TAG",new String(data));
        Log.d("TAG",new String(data,5,5)); 

【举例】:判断某一字符串是否全部由数字组成:将字符串转换为字符数组,便于进行每个字符的判断其范围是否在'0'~'9'之间;

    public static boolean isNumber(String str){
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            if(data[x]<'0' || data[x]>'9'){
                return false;
            }
        }
        return true;
    }

2、字节与字符串

字节与字符串的转换,在实际开发中较多,以下几个方法:

序号

方法名称

类型

描述

1

public String(byte[] bytes)

构造

将全部的字节数组变为字符串

2

public String(byte[] bytes,intt offset,int count)

构造

将部分字节数组变为字符串,设置字节数组的开始索引与使用个数

3

public byte[] getBytes()

普通

将字符串变为字节数组

4

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException

普通

编码转换

【举例】:利用字节数组实现小写字母变换为大写字母

        String str = "hello";
        byte[] data = str.getBytes();
        for(int x=0;x<data.length;x++){
            data[x] -=32;
        }
        System.out.println(new String(data));

以上代码只是针对字节的简单操作,实际开发中字节的使用通常结合IO、网络进行的。

3、字符串比较

由前面几个博文可知,字符串比较方法有equals方法,此方法是区分大小写的比较,Java中针对字符串比较的方法有:

序号

方法名称

类型

描述

1

public boolean equals(Object anObject)

普通

区分大小写的字符串比较(是否相等)

2

public boolean equalsIgnoreCase(String anotherString)

普通

不区分大小的字符串比较(是否相等)可用于验证码

3

public int compareTo(String anotherString)

普通

比较字符串大小

4

public int compareToIgnoreCase(String str)

普通

不区分大小的比较字符串大小

compareTo方法最为重要,如 A.compareTo(B)返回结果有三种:

  • >0: 字符串A>B;
  • <0:字符串A<B;
  • =0:字符串A=B;

应用比较简单,不再举例喽。

4、字符串查找

从一个完整的字符串中查找子字符串,有以下方法:

序号

方法名称

类型

描述

1

public boolean contains(CharSequence s)

普通

判断某一个字符串是否存在

2

public int indexOf(String str)

普通

取得某一个字符串的索引位置,找不到返回-1

3

public int indexOf(String str,int fromIndex)

普通

从指定索引位置开始检索子字符串位置,找不到就返回-1

4

public int lastIndexOf(String str)

普通

从后向前查找指定字符串,找不到返回-1

5

public int lastIndexOf(String str,int fromIndex)

普通

从指定位置,由后向前查找指定字符串,找不到返回-1

6

public boolean startsWith(String prefix)

普通

判断是否以某个字符串开头

7

public boolean startsWith(String prefix, int toffset)

普通

从指定位置判断是否以某个字符串开头

8

public boolean endsWith(String suffix)

普通

是否以某个字符串结尾

要查找中间的内容,基本都是使用contains()方法,但是它只能查找,不能判断位置,JDK1.5以后出现的方法,1.5之前只能用indexOf()方法。

startsWith()方法、endsWith()方法在开发中比较实用。

5、字符串截取

将完整字符串 截取子字符串,方法如下:

序号

方法名称

类型

描述

1

public String substring(int beginIndex)

普通

从指定索引位置(包含该位置的字符)截取至末尾

2

public String substring(int beginIndex, int endIndex)

普通

截取指定索引范围内的字符串(包含起始索引,不包含end索引)

实际开发这种截取操作很常用,比较简单,不再举例赘述了。

6、字符串替换

将指定字符串替换为其他内容,如下方法:

序号

方法名称

类型

描述

1

public String replaceAll(String regex,String replacement)

普通

字符串的全部替换

2

public String replaceFirst(String regex,String replacement)

普通

替换第一个内容

【举例】:观察替换操作

        String str = "hello";
        System.out.println(str.replaceAll("l","L"));//输出heLLo
        System.out.println(str.replaceFirst("l","L"));//输出heLlo

实际开发中,利用替换操作可以消除数据中的全部空格:

        String str = "h e llo";
        System.out.println(str.replaceAll(" ",""));//输出hello

7、字符串拆分

将完整字符串根据指定内容进行拆分,拆分后的结果为字符串数组,方法如下:

序号

方法名称

类型

描述

1

public String[] split(String regex)

普通

全部拆分

2

public String[] split(String regex,int limit)

普通

部分拆分

【举例】:观察全部拆分

        String str = "hello world";
        String[] data = str.split(" ");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

【举例】:观察部分拆分

        String str = "hello world nice china";
        String[] data = str.split(" ",2);
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

【举例】:拆分IP地址

        String str = "192.168.1.1";
        String[] data = str.split(".");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

可以发现,按“.”拆分无结果返回,不能直接按"."拆分,因为其属于正则表达式的范畴。所以,需要进行转义,使用"\\"。

        String str = "192.168.1.1";
        String[] data = str.split("\\.");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

8、其他操作方法

除以上方法外,还有一些小的操作方法:

序号

方法名称

类型

描述

1

public int length()

普通

取得字符串的长度(中英文长度一致,方便开发) 注意,String中使用的是方法,数组中使用的是属性

2

public boolean isEmpty()

普通

判断是否为空(""),若是返回true,否则返回false

3

public String toUpperCase()

普通

针对字母,转大写

4

public String toLowerCase()

普通

针对字母,转小写

5

public String trim()

普通

去掉左右空格,不去中间字符

6

public String concat(String str)

普通

字符串的连接(基本不会使用,与+相同)

【举例】:观察trim

        String str = " h  ello   ";
        System.out.println(str.trim());

【举例】很遗憾,String类中没有提供initcap()函数的功能,用于首字母大写,开发中很常用,我们自己实现

    public static String initCap(String str){
        if(str==null || str.length()==0){
            return str;
        }
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、字符与字符串
  • 2、字节与字符串
  • 3、字符串比较
  • 4、字符串查找
  • 5、字符串截取
  • 6、字符串替换
  • 7、字符串拆分
  • 8、其他操作方法
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档