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

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 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实现

依赖

javax.xml.bind

jaxb-api

2.3.0

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成神的系列文章之一

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

我会第一时间总结出来并发布填充到本文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值