java成神之——java中string的用法
阿新 • • 發佈:2018-09-29
基本 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的用法