美文网首页
String类常用方法

String类常用方法

作者: 曾梦想仗剑天涯 | 来源:发表于2020-10-22 16:22 被阅读0次

    字符串与字符数组

    No. 方法名称 类型 描述
    01 public String(char [] value) 构造 将传入的字符数组变为字符串
    02 public String(char [] value, int offset, int count) 构造 将部分字符数组变为字符串
    03 public char charAt(int index) 普通 获取指定索引位置的字符
    04 public char [] toCharArray() 普通 将字符串中的数据以字符数组的形式返回
    //charAt()可以获取某一指定索引位置的字符
    public class StringDemo {
      public static void main(String args []) {
        String str = "www.baidu.com";
        char c = str.charAt(7);
        System.out.println(c);    //d
      }
    }
    //toCharArray()
    public class StringDemo {
      public static void main(String args []) {
        String str = "helloworld";
        char [] result = str.toCharArray();    //将字符串变为字符数组
        for(int x = 0; x < result.length; x++) {
          result[x] -= 32;
        }
        String newStr = new String(result);
        System.out.println(newStr);
        System.out.println(new String(result, 0 , 5));
      }
    }
    /**
      判断一个字符串之中是否全部由数字组成
        1.如果想要判断字符串中的每一位,最好的办法就是将字符串变为字符数组
        2.可以判断每一个字符是否在数字的范围之内('0'~'9')
        3.如果有一位不是数字则验证失败
    */
    public class StringDemo {
      public static void main(String args []) {
        String str = "helloworld";
        System.out.println(isNumber(str));
        System.out.println(isNumber("123"));
      }
      //判断字符串是否由数字组成
      public static boolean isNumber(String str) {
        char [] result = str.toCharArray();    //将字符串变为字符数组
        for(int x = 0; x < result.length; x++) {
          if(result[x] < '0' || result[x] > '9') {
            return false;
          }
        }
        return true;
      }
    }
    

    字符串与字节数组

    • 字符串与字节数组之间也可以实现转换的处理操作,但需要提醒一下,当字符串与字节转换时,其主要目的是为了进行二进制的数据传输,或者是进行编码转换
    No. 方法名称 类型 描述
    01 public String(byte [] bytes) 构造 将全部字节数组变为字符串
    02 public String(byte [] bytes, int offset, int length) 构造 将部分字节数组变为字符串
    03 public byte [] getBytes() 普通 将字符串转为字节数组
    04 public byte [] getBytes(String charsetName) throws UnsupportedEncodingException 普通 编码转换
    //字节本身有长度限制,一个字节最多可以保存的范围:-128~127
    public class StringDemo {
      public static void main(String args []) {
        String str = "helloworld";
        byte [] data = str.getBytes();    //将字符串变为字节数组
        for(int x = 0; x < data.length; x++) {
          data[x] -= 32;
        }
        System.out.println(new String(data));
        System.out.println(new String(data, 0 , 5));
      }
    }
    

    字符串比较

    • 字符串比较最常用的方法是equals(),但是这个方法需要注意的是其是进行大小写区分的
    No. 方法名称 类型 描述
    01 public boolean equals(String anObject) 普通 区分大小写的相等判断
    02 public boolean equalsIgnoreCase(String anotherString) 普通 不区分大小写的比较
    03 public int compareTo(String anotherString) 普通 进行字符串大小比较,该方法返回一个int数据,该数据有三种取值:大于(>0)、小于(<0)、等于(=0)
    04 public int compareToIgnoreCase(String str) 普通 不区分大小写进行字符串大小比较
    //equals() 区分大小写
    public class StringDemo {
      public static void main(String args []) {
        String strA = "helloworld";
        String strB = "HELLOWORLD";
        System.out.println(strA.equals(strB));    //false
      }
    }
    //equalsIgnoreCase() 不区分大小写
    public class StringDemo {
      public static void main(String args []) {
        String strA = "helloworld";
        String strB = "HELLOWORLD";
        System.out.println(strA.equalsIgnoreCase(strB));    //true
      }
    }
    //compareTo()    compareToIgnoreCase()
    public class StringDemo {
      public static void main(String args []) {
        String strA = "m";
        String strB = "M";
        System.out.println(strA.compareTo(strB));    //32
        System.out.println(strB.compareTo(strA));    //-32
        System.out.println("M".compareTo("M"));    //0
        System.out.println(strA. compareToIgnoreCase(strB));    //0
      }
    }
    

    字符串查找

    • 从一个完整字符串中查找子字符串的存在就属于字符串查找操作
    No. 方法名称 类型 描述
    01 public boolean contains(String s) 普通 判断子字符串是否存在
    02 public int indexOf(String str) 普通 从头查找指定字符串的位置,找不到返回-1
    03 public int indexOf(String str, int fromIndex) 普通 从指定位置查找指定字符串的位置
    04 public int lastIndexOf(String str) 普通 从后向前查找指定字符串的位置
    05 public int lastIndexOf(String str, int fromIndex) 普通 由指定位置从后向前查找指定字符串的位置
    06 public boolean startsWith(String prefix) 普通 判断是否以指定的字符串开头
    07 public boolean startsWith(String prefix, int toffset) 普通 由指定位置判断是否以指定的字符串开头
    08 public boolean endsWith(String suffix) 普通 是否以指定的字符串结尾
    public class StringDemo {
      public static void main(String args []) {
        String str = "www.baidu.com";
        System.out.println(str.contains("baidu"));    //true
        System.out.println(str.indexOf("baidu"));   //4
        System.out.println(str.lastIndexOf("baidu"));   //4
        System.out.println(str.startsWith("baidu"));   //false
        System.out.println(str.endsWith("baidu"));   //false
      }
    }
    

    字符串替换

    • 字符串替换是通过一个指定的内容进行指定字符串替换
    No. 方法名称 类型 描述
    01 public String replaceAll(String regex, String replacement) 普通 全部替换
    02 public String replaceFirst(String regex, String replacement) 普通 替换首个
    public class StringDemo {
      public static void main(String args []) {
        String str = "helloworld";
        System.out.println(str.replaceAll("l", "_"));    //he__owor_d
        System.out.println(str.replaceFirst("l", "_"));    //he_loworld
      }
    }
    

    字符串拆分

    • 根据一个指定的字符串或者一些表达式实现字符串的拆分,并且拆分完的数据将以字符串数组的形式返回
    No. 方法名称 类型 描述
    01 public String [] splic(String regex) 普通 按照指定的字符串全部拆分
    02 public String [] splic(String regex, int limit) 普通 按照指定字符串拆分为指定个数,后面不拆了
    public class StringDemo {
      public static void main(String args []) {
        String str = "hello world hello xiaoming";
        String resultA [] = str.split(" ");
        String resultB [] = str.split(" ", 2);
        for(int x = 0; x < resultA.length; x++) {
          System.out.println(resultA[x]);
        }
        for(int x = 0; x < resultB.length; x++) {
          System.out.println(resultB[x]);
        }
      }
    }
    

    字符串截取

    • 从一个完整的字符串之中截取出想要的子字符串
    No. 方法名称 类型 描述
    01 public String substring(int beginIndex) 普通 从指定索引截取到结尾
    02 public String substring(int beginIndex, int endIndex) 普通 截取指定索引范围中的子字符串
    public class StringDemo {
      public static void main(String args []) {
        String str = "www.baidu.com";
        System.out.println(str.substring(4));
        System.out.println(str.substring(4, 9));
      }
    }
    

    字符串格式化

    • 对于占位符而言:字符串(%s)、字符(%c)、整数(%d)、小数(%f)
    No. 方法名称 类型 描述
    01 public static String format(String format, 各种类型 ... args) 普通 根据指定结构进行文本格式化显示
    public class StringDemo {
      public static void main(String args []) {
        String name = "张三";
        int age = 18;
        double score = 98.765321;
        String str = String.format("姓名%s、年龄%d、成绩%5.2f", name, age, score);
        System.out.println(str);
      }
    }
    

    其他操作方法

    No. 方法名称 类型 描述
    01 public String concat(String str) 普通 描述字符串的连接
    02 public String intern() 普通 字符串入池
    03 public String isEmpty() 普通 判断是否为空字符串(不是null)
    04 public int length() 普通 计算字符串的长度
    05 public String trim() 普通 去除左右的空格信息
    06 public String toUpperCase() 普通 转大写
    07 public String toLowerCase() 普通 转小写
    /**
      从整体的运行结果来看,strA strB的内容相同
      但是最终输出了一个false,证明此操作并没有实现静态的定义
    */
    public class StringDemo {
      public static void main(String args []) {
        String strA = "www.baidu.com";
        String strB = "www.".concat("baidu.").concat("com");
        System.out.println(strB);
        System.out.println(strA == strB);    //false
        String str = "";
        System.out.println(str.isEmpty());    //true
        String strC = " hello ";
        System.out.println(strC.length());    // 7
        System.out.println(strC.trim());    // hello
        String strD = "Hello World !!!";
        System.out.println(strD.toUpperCase());
        System.out.println(strD.toLowerCase());
      }
    }
    
    • 自定义首字母大写的方法
    //首字母为空格不适用
    class StringUtil {
      public static String initcap(String str) {
        if(str == null || "".equals(str)) {
          return str;
        }
        if(str.length() == 1) {
          return str.toUpperCase();
        }
        return str.substring(0, 1).toUpperCase() + str.substring(1);
      }
    }
    public class StringDemo {
      public static void main(String args []) {
        System.out.println(StringUtil.initcap("hello"));
        System.out.println(StringUtil.initcap("m"));
      }
    }

    相关文章

      网友评论

          本文标题:String类常用方法

          本文链接:https://www.haomeiwen.com/subject/facpmktx.html