• java学习4核心类:字符串


    实际上字符串String内部是通过一个char[]数组表示的。因此

    String s = new String(new char[] {'h','e','l','l','o'};
    和
    String s = "hello";
    是等价的
    因为java的字符串作为对象放入常量池的。所以:
    字符串比较不要用 “==“ 一定用equals。 Srting s1 = "hello"; String s2 = "HELLO".toLowerCase(); System.out.printlin(s1.equals(s2));//true System.out.printlin(s1==s2);//False

    System.out.printlin(s1.equalsIgnoreCase);//忽略大小写的比较

    System.out.println("Hello".contains("lo"));//包含


    System.out.println("Hello".contains("lo"));//搜索子串
    System.out.println("Hello".startsWith("He"));//子串开头

    System.out.println("Hello".endsWith("lo"));//子串结尾

    System.out.println("hello".substring(2));//llo
    System.out.println("hello".substring(2,4));//ll

    System.out.println(" \hello\r\n".trim());//去掉首尾空白字符
    strip()方法也可以移除字符串首尾空白字符。它和trim()不同的是,类似中文的空格字符\u3000也会被移除:
    "\u3000Hello\u3000".strip(); // "Hello"
    " Hello ".stripLeading(); // "Hello "
    " Hello ".stripTrailing(); // " Hello"
    

    //字符串替换
    String s = "Hello";
    s.replace('e','~');
    另外一种用正则表达式
    String s = "A,,B;C ,D";
    s.replaceAll("[\\,\\;\\s]+", ","); // "A,B,C,D"
    
    //分割字符串 split()方法

    //拼接字符串join()和format
    String[] arr = {"A", "B", "C"};
    String s = String.join("***", arr); // "A***B***C"
    
    //类型转换
    String.valueOf(123); // "123"
    String.valueOf(45.67); // "45.67"
    String.valueOf(true); // "true"
    String.valueOf(new Object()); // 类似java.lang.Object@636be97c

    //把字符串转换为int类型:
    int n1 = Integer.parseInt("123"); // 123
    int n2 = Integer.parseInt("ff", 16); // 按十六进制转换,255

    //把字符串转换为boolean类型:
    boolean b1 = Boolean.parseBoolean("true"); // true
    boolean b2 = Boolean.parseBoolean("FALSE"); // false

    //String和char[]的转换
    char[] cs = "Hello".toCharArray(); // String -> char[]
    String s = new String(cs); // char[] -> String

    //通过new String(char[])创建新的String实例时,它并不会直接引用传入的char[]数组,而是会复制一份,所以,修改外部的char[]数组不会影响String实例内部的char[]数组,因为这是两个不同的数组。

    //如果传入的对象有可能改变,我们需要复制而不是直接引用,需要修改构造器,复制一份Arrays.copyOf(OriginalScore, OriginalScore.length);

    byte[] b1 = "Hello".getBytes(); // 按系统默认编码转换,不推荐
    byte[] b2 = "Hello".getBytes("UTF-8"); // 按UTF-8编码转换
    byte[] b2 = "Hello".getBytes("GBK"); // 按GBK编码转换
    byte[] b3 = "Hello".getBytes(StandardCharsets.UTF_8); // 按UTF-8编码转换

    byte[] b = ...
    String s1 = new String(b, "GBK"); // 按GBK转换
    String s2 = new String(b, StandardCharsets.UTF_8); // 按UTF-8转换
    
  • 相关阅读:
    转贴:CSS伪类与CSS伪元素的区别及由来具体说明
    Docker + Consul 多数据中心模拟
    Spring之事件发布系统
    ExecutorService的submit方法的坑
    固定频率调用接口方案
    叠罗汉III之推箱子
    叠罗汉II
    叠罗汉I
    滑雪
    华为OJ:火车进站
  • 原文地址:https://www.cnblogs.com/usegear/p/15748195.html
Copyright © 2020-2023  润新知