别在逻辑处理字符串了,String类的常用方法都有

140 阅读3分钟

\

目录

前言

一、String的转换方法

二、String的判断方法

 三、String转换char

总结


前言

在开发过程中像获取字符串长度、字符串截取、字符串转数组这样的方法我们常用会很熟悉,但是有很多实用方法我们并不了解。

如:

  • 判断以某字符结尾的字符串:endsWith
  • 判断以指定字符开始的字符串:startsWith
  • 判断字符串里是否存在指定字符:contains
  • 忽略大小写的判断字符串是否相等:equalsIgnoreCase

了解String提供的基础方法,不需要再重复的去编写逻辑来实现这些已经存在的处理方法


一、String的转换方法

转换的方法有:转大写、小写,去除前后空格、字符串截取、转为数组。

适用方式方法返回类型具体实现
字符串全部转为大写toUpperCaseStringstr.toUpperCase()
字符串全部转为小写toLowerCaseStringstr.toLowerCase()
去除字符串两边的空格trimStringstr.trim()
字符串以某字符切割转为字符串数组splitString[]str.split("")
字符串截断,如果只有一个数值则截值到最后一位substringStringstr.substring(1)
将一个字符串转换成字节数组getBytesbyte[]str.getBytes()

代码实现:

    public static void main(String[] args) {
        String str = "anyusheng";
        // String的转换方法
        str = str.toUpperCase(); // 全部转为大写
        System.out.println("字符串全部转为大写:str.toUpperCase() --> "+str);
        str = str.toLowerCase(); // 全部转为小写
        System.out.println("字符串全部转为小写:str.toLowerCase() --> "+str);
        str = str.trim(); // 去除字符串两边的空格
        System.out.println("去除字符串两边的空格:str.trim() --> "+str);
        String strArray[] = str.split(","); // 字符串以某字符切割转为字符串数组
        System.out.println("字符串以某字符切割转为字符串数组:str.split(x) --> "+Arrays.toString(strArray));
        str = str.substring(1); // 字符串截断,如果只有一个数值则截值-最后一位
        System.out.println("字符串截断,如果只有一个数值则截值-最后一位:str.substring(x) --> "+str);
        byte[] bytes = str.getBytes(); // 将一个字符串转换成字节数组
        System.out.println("将一个字符串转换成字节数组:str.getBytes() --> "+Arrays.toString(bytes));
        System.out.println((char)bytes[0]); // byte转为char
    }

二、String的判断方法

判断的方法有:判断字符串以什么字符开头、结尾、判断字符串是否为空、判断字符串是否包含指定字符、判断字符串是否全等(不区分大小写)

适用方式方法返回类型具体实现
判断是否以指定字符串结尾endsWithbooleanstr.endsWith("ng")
判断是否以指定字符串开始toLowerCasebooleanstr.startsWith("an")
判断字符串是不是为空,前提条件字符串不能为空isEmptybooleanstr.isEmpty()
判断字符串里是不是包含指定字符串containsbooleanstr.contains("ny")
判断匹配字符串是否相等,不区分大小写equalsIgnoreCasebooleanstr.equalsIgnoreCase("ANYUSHENG")

代码实现:

    public static void main(String[] args) {
        String str = "anyusheng";
        // String的判断方法
        boolean b = false;
        b = str.endsWith("ng"); // 判断是否以指定字符串结尾
        System.out.println("判断是否以指定字符串结尾:str.endsWith(xxx) --> "+b);
        b = str.startsWith("an"); // 判断是否以指定字符串开始
        System.out.println("判断是否以指定字符串开始:str.startsWith(xxx) --> "+b);
        b = str.isEmpty(); // 判断字符串是不是为空,前提条件字符串不能为空
        System.out.println("判断字符串是不是为空,前提条件字符串不能为空:str.isEmpty() --> "+b);
        b = str.contains("ny"); // 判断字符串里是不是包含指定字符串
        System.out.println("判断字符串里是不是包含指定字符串:str.contains() --> "+b);
        b = str.equalsIgnoreCase("ANYUSHENG"); // 判断匹配字符串是否相等,不区分大小写
        System.out.println("判断匹配字符串是否相等,不区分大小写:str.equalsIgnoreCase() --> "+b);
    }

 三、String转换char

此方法有:字符串转char集合、char转字符串

适用方式方法返回类型具体实现
字符串转char集合toCharArraychar[]str.toCharArray()
char集合转字符串new String(char数组)Stringnew String(ch)
String.valueOf(char数组)StringString.valueOf(ch)
char集合转字符串筛选指定一段字符new String(char数组,下标,长度)Stringnew String(ch,2,3)
String.valueOf(char数组,下标,长度)StringString.valueOf(ch,2,3)

代码实现:

    public static void main(String[] args) {
        String str = "anyusheng";
        // 字符串转char集合
        char[] ch =  str.toCharArray();
        System.out.println("字符串转char集合:str.toCharArray() --> "+ Arrays.toString(ch));
        // char集合转字符串
        String chStr = new String(ch);
        System.out.println("char[]转String:new String(ch) --> "+chStr);
        chStr = String.valueOf(ch);
        System.out.println("char[]转String:String.valueOf(ch) --> "+chStr);
        // char集合转字符串筛选指定一段字符
        chStr = new String(ch,2,3);
        System.out.println("char集合转字符串筛选指定一段字符:new String(ch,2,3) --> "+chStr);
        chStr = String.valueOf(ch,2,3);
        System.out.println("char集合转字符串筛选指定一段字符:String.valueOf(ch,2,3) --> "+chStr);
    }


总结

单单String的方法肯定不能满足我们日常的各种需求和扩展性,像转换首字母为大写或小写,在这种时候我们可以使用StringUtils等各种实现类,目前对字符串的处理在市面上的工具类基本已经都包含了基础处理,所以我们尽量避免无用的开发字符串处理逻辑,个性化的逻辑另外。