1. 程式人生 > >java成神之——java中string的用法

java成神之——java中string的用法

基本 ble sta first stand pat concat lower a+b

  • java中String的用法
    • String基本用法
    • String分割
    • String拼接
    • String截取
    • String換行符和format格式化
    • String反轉字符串和去除空白字符
    • String獲取指定位置字符和replace的使用
    • StringBuffer的使用
    • 字符串轉換
      • 基本類型的轉換
      • 添加字符編碼
      • Base64的編碼和解碼
    • 結語

java中String的用法

String基本用法

字符串一旦創建在堆中就不可變

字符串聲明
    String str = "你好";
    String str = new String("abc");

字符串比較
    String str1 = new String("abc");
    String str2 = "abc";
    System.out.println(str1.equals(str2));          true 比較字符串中每個字符是否相等
    System.out.println(str1 == str2);               false

其他的常用實例方法
    str1.equals(str2);
    str1.toUpperCase();
    str1.toLowerCase();
    str.contains(substr);
    str.indexOf(substr); // 找不到返回-1

String分割

split方法傳遞正則表達式,正則特殊符號必須轉義

正則符號 < > - = ! ( ) [ ] { } \ ^ $ | ? * + .

"a|b|c|".split("\\|");                  轉義符轉義

"a|b|c|".split(Pattern.quote("|"));     調用方法轉義 

"a|b|c|".split("\\|", -1);              傳遞第二個參數,表示不去除空字符

多分割符使用
StringTokenizer tokenizer = new StringTokenizer("agetwget", "gt"); // 分別以g和t作為分隔符
while(tokenizer.hasMoreElements()) {
    System.out.println(tokenizer.nextToken());
} 
輸出結果
a
e
w
e

String拼接

join的使用
    String[] items = {"a", "b", "c"};
    String str = String.join("+", items);                               // a+b+c

StringJoiner的使用
    StringJoiner sj = new StringJoiner(", ", "[", "]");
    sj.add("a");
    sj.add("b");
    sj.add("c");
    sj.toString()                                                       // [a, b, c]

Stream的使用
    Stream<String> ss = Stream.of("a", "b", "c");
    String str = ss.collect(Collectors.joining(", ", "[", "]"));        // [a, b, c]

StringBuilder的使用
    StringBuilder sb = new StringBuilder();                             // StringBuilder,開發多線程程序不建議使用
    sb.append("a").append("b").append("c");
    sb.toString();                                                      // abc

concat的使用
    String str = "a".concat("b").concat("c");                           // abc

String截取

String str = "0123456789";

從索引位2的位置一直截取到末尾
str.substring(2);           // 23456789

從索引2的位置截取到索引為5的位置,不包含最後一位
str.substring(2, 5);        // 234

String換行符和format格式化

換行符 System.lineSeparator()

%n 也代表換行符
String str = String.format("line 1: %s.%nline 2: %s%n", "firstLine","secondLine");
輸出結果
line 1: firstLine.
line 2: secondLine

String反轉字符串和去除空白字符

反轉字符串
    StringBuilder str = new StringBuilder("abc");
    str.reverse().toString(); // abc

去除空白字符
    "    aaaa   ".trim();

String獲取指定位置字符和replace的使用

獲取指定位置字符
    "0123".charAt(1)                    // 1

replace的使用
    替換所有,使用字符串
    "aaa".replace(‘a‘,‘b‘);             // bbb

    替換所有,使用正則,圓括號表示正則分組,$1表示反向引用
    "aabaa".replaceAll("(b)","c$1c");   // aacbcaa, 
    
    replaceFirst 只替換匹配的第一個

StringBuffer的使用

線程安全

StringBuffer sb = new StringBuffer();
sb.append("a").append("b").append("c");
sb.toString();

字符串轉換

基本類型的轉換

int num = Integer.parseInt("123");
double num = Double.parseDouble("1.12");
float num = Float.parseFloat("1.1");
long num = Long.parseLong("111
BigInteger num = new BigInteger("11");
BigDecimal num = new BigDecimal("1.11");
String.valueOf(11);

boolean falseBool = Boolean.parseBoolean("False");
boolean trueBool = Boolean.parseBoolean("True");

添加字符編碼

String testString = new String("test".getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8);
String testString = new String ("test".getBytes("UTF-8"), "UTF-8");

Base64的編碼和解碼

DatatypeConverter實現

    依賴
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>

    byte[] binaryData = "some arbitrary data".getBytes("UTF-8");
    String encodedData = DatatypeConverter.printBase64Binary(binaryData);    // c29tZSBhcmJpdHJhcnkgZGF0YQ==
    byte[] decodedData = DatatypeConverter.parseBase64Binary(encodedData);
    new String(decodedData)                                                  // "some arbitrary data"

內置Base64實現

    String encoded = Base64.getEncoder().encodeToString("some arbitrary data".getBytes("UTF-8"));                   // c29tZSBhcmJpdHJhcnkgZGF0YQ==
    String encoded = Base64.getEncoder().withoutPadding().encodeToString("some arbitrary data".getBytes("UTF-8"));  // c29tZSBhcmJpdHJhcnkgZGF0YQ
    new String(Base64.getDecoder().decode(encoded))

結語

本文章是java成神的系列文章之一

如果你想知道,但是本文沒有的,請下方留言

我會第一時間總結出來並發布填充到本文

java成神之——java中string的用法