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<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的用法的更多相关文章
- java成神之——java常识
java常识 简单DOS命令 java基础名词 java编译和运行流程 Eclipse常用快捷键 Eclipse相关操作 java基本数据类型 java基本数据类型转换 java常用运算符 java流 ...
- java成神之——线程操作
线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...
- java成神之——正则表达式基本使用
正则表达式 常用匹配规则 基本使用 标记符的使用 部分正则标记 正则表达式在字符串方法中的使用 结语 正则表达式 常用匹配规则 [abc] abc其中一个 [^abc] abc之外的一个 [a-z] ...
- java成神之——properties,lambda表达式,序列化
Properties 加载defaults.properties文件 写Properties到xml文件 读Properties从xml文件 Lambda表达式 自定义 内置 sort方法中使用Lam ...
- java成神之——接口,泛型,类
接口 接口定义 默认方法 函数式接口 泛型 泛型类 泛型类继承 类型限定 泛型方法 泛型接口 类 构造函数 类的继承 抽象类 instanceof运算符 内部类 equals 结语 接口 接口定义 j ...
- java成神之——ImmutableClass,null检查,字符编码,defaultLogger,可变参数,JavaScriptEngine,2D图,类单例,克隆,修饰符基本操作
ImmutableClass null检查 字符编码 default logger 函数可变参数 Nashorn JavaScript engine 执行脚本文件 改变js文件输出流 全局变量 2D图 ...
- java成神之——注释修饰符
注释修饰符 自定义注释 元注释 通过反射在runtime访问注释 内置注释 多注释实例 错误写法 使用容器改写 使用@Repeatable元注释 注释继承 使用反射获取注释 获取类的注释 获取方法的注 ...
- java成神之——enum枚举操作
枚举 声明 枚举遍历 枚举在switch中使用 枚举比较 枚举静态构造方法 使用类来模拟枚举 枚举中定义抽象方法 枚举实现接口 单例模式 使用静态代码快 EnumSet EnumMap 结语 枚举 声 ...
- 转载_2016,Java成神初年
原文地址:http://blog.csdn.net/chenssy/article/details/54017826 2016,Java成神初年.. -------------- 时间2016.12. ...
随机推荐
- Django进阶Model篇007 - 聚集查询和分组查询
接着前面的例子,举例聚集查询和分组查询例子如下: 1.查询人民邮电出版社出了多少本书 >>> Book.objects.filter(publisher__name='人民邮电出版社 ...
- 模拟form提交数据
最近在做一个项目,发现ajax不能enctype=”multipart/form-data” 属性的表单,没办法,只能使用form表单直接提交的方法了,但是form表单直接提交会跳转页面,这样很不友好 ...
- 前端 velocity(.vm)模板里写ajax出现解析异常
异常信息:Caused by: org.apache.velocity.exception.ParseErrorException: Encountered "{" at dist ...
- js 函数里的 this
1,当作为纯粹的函数调用时, this指向调用出的环境的上下文,看下面的例子 var x = 1; function test(){ var x = 0; alert( alert(x); } tes ...
- Precision/Recall、ROC/AUC、AP/MAP等概念区分
1. Precision和Recall Precision,准确率/查准率.Recall,召回率/查全率.这两个指标分别以两个角度衡量分类系统的准确率. 例如,有一个池塘,里面共有1000条鱼,含10 ...
- pgrep 和 pkill 使用小记
在停止指定进程时,经常使用如下命令: kill `ps aux | grep -w program_name | grep -v grep | awk '{print $2}'` 使用 pgrep 和 ...
- Reinforcement Learning Q-learning 算法学习-3
//Q-learning 源码分析. import java.util.Random; public class QLearning1 { private static final int Q_SIZ ...
- PS基础教程[6]如何快速制作一寸照片
一寸照片使我们经常会用到的,很多的证件照都是使用一寸的照片作为存档的.写这个经验也是因为刚刚有网友求助做一寸照片,所以就顺便写个经验.废话不多说了,进入正题,PS基础教程之快速制作一寸的照片. 制作方 ...
- Spring IOC容器在Web容器中是怎样启动的
前言 我们一般都知道怎样使用spring来开发web应用后,但对spring的内部实现机制通常不是很明白.这里从源码角度分析下Spring是怎样启动的.在讲spring启动之前,我们先来看看一个web ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...