0
点赞
收藏
分享

微信扫一扫

14.String相关,转换,StringBuilder,StringJoiner,String.join()

以前干嘛去了 2022-01-26 阅读 59
java

参考来自廖雪峰官方网站

自己进行对自己理解有帮助的加工,提取,注记

1.String

String s1 = "Hello!";与String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'});等价

Java字符串的一个重要特点就是字符串不可变。这种不可变性是通过内部的private final char[]字段,以及没有任何修改char[]的方法实现的。

==比较地址(地址与new有关,否则从常量池找)

equals比较内容

equalsIgnoreCase()忽略大小写比较内容

注意到contains()方法的参数是CharSequence而不是String,因为CharSequence是String的父类。是否包含

" \tHello\r\n ".trim(); // "Hello"移除字符串首尾空白字符。空白字符包括空格,\t,\r,\n

strip()方法也可以移除字符串首尾空白字符。它和trim()不同的是,类似中文的空格字符\u3000也会被移除:

isEmpty()和isBlank()来判断字符串是否为空和空白字符串:

一种是根据字符或字符串替换:

通过正则表达式替换:

分割字符串

拼接字符串

格式化字符串

字符串提供了formatted()方法和format()静态方法,可以传入其他参数,替换占位符,然后生成新的字符串:

2.类型转换

占位符有:

例如%.2f表示显示两位小数

任意基本类型或引用类型转换为字符串---重载方法

还有+拼接也是字符串

String str=78+"hh";

字符串转换为其他类型(调用基本数据类型封装类)

进制转换参考:

转换为char[]

String和char[]类型可以互相转换,方法是:

前面还有字符串转字符串数组split

3.编码

字符串转换成其他编码

注意:转换编码后,就不再是char类型,而是byte类型表示的数组。

如果要把已知编码的byte[]转换为String,可以这样做:

始终牢记:Java的String和char在内存中总是以Unicode编码表示。

虽然ASCII存储更小的内存---8bit,但不是它。

小结

4.StringBuilder,StringBuffer,StringJoiner,String.join()

str.append("Mr ")//尾部插入

.insert(index, "Hello, ");//按索引插入

省略str,称为链式操作

package test;

import java.util.StringJoiner;

/**
* @Title
* @Author Eastlin
* @Description:
*/
public class StringTest {
public static void main(String[] args) {

String[] names = {"Bob", "Alice", "Grace"};
//StringJoiner--指定“开头”和“结尾”
StringJoiner sj=new StringJoiner("*");//分隔符(前后都有字符才叫分隔符)
StringJoiner sj1=new StringJoiner(", ", "Hello ", "!");//分,前缀,后缀
for (String name : names) {
sj.add(name);
}
System.out.println(sj.toString());
for (String name : names) {
sj1.add(name);
}
System.out.println(sj1.toString());
//String.join()
String str=String.join("!", names);
System.out.println(str);

//StringBuilder
StringBuilder sb = new StringBuilder();
sb.append("Hello ");
for (String name : names) {
sb.append(name).append("#");
}
System.out.println(sb);
// 注意去掉最后的", ":
sb.delete(sb.length() - 1, sb.length());
sb.append("!");
System.out.println(sb);
}


}

操作字符串的类有:String、StringBuffer、StringBuilder。

StringBuffer、StringBuilder方法什么的都一样

举报

相关推荐

0 条评论