Java的字符串

Java的字符串_第1张图片
String及常用API

javadoc命令生成文档:

目标HTML文档存储到docDir下,执行以下步骤

切换到包含想要生成文档的源文件目录,如果有嵌套的包,必须切换到包含子目录的目录

如果是一个包,运行命令:

javadoc -d docDir nameOfPackage

多个包生成文档,运行

javadoc -d docDir nameOfPackage1,nameOfPackage2……

如果文件在默认包中,运行

javadoc -d docDir *.java

String是不可变对象

  • java.lang.String被final修饰,不可修改;
  • 底层封装的是字符数组以及其操作算法
  • 字符串是不可变对象,一旦改变内容,就会创建新对象
  • Java字符串内存中采用Unicode编码任何一个字符对应两个字节定长编码

String常量池

Java为了提高性能,静态字符串(字面量、常量、常量连接的结果)在常量池中创建,并尽量使用同一个对象,重用静态字符串

对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在,即返回该对象

引用类型的比较重:==用于判断是否为同一个对象,因为比较的是地址,而equals用于判断对象内容是否相同。

String在内存中采用Unicode编码,每个字符占用两个字节;任何一个字符(无论中英文)都算一个字符长度,占用两个字节

使用indexOf实现检索

int indexOf(String str)在字符串中检索str,返回其第一次出现的位置,如果找不到则返回-1

JavaAPI中大多数情况下,凡是使用两个数字表示范围的,通常都是含头不含尾的(左闭右开)

lastIndexOf获取最后一次出现的位置。

subString

subString方法用于返回一个字符串的子字符串

trim

去掉一个字符串左右两边的空字符(包括空格tab等)

charAt

用于返回指定位置的字符

startsWith和endsWith

检测字符串是否已制定字符串开头或结尾

aaa.doc之类的,判断文件类型的时候可以使用endsWith

大小写转换

toUpperCase和toLowerCase

验证码忽略大小写检查的时候经常用到

valueOf

基本类型数据与空字符串拼接可以转换为字符串

另外就是用valueOf方法

字符串性能

StringBuilder封装可变的字符串,对象创建后可以通过调用方法改变其封装的字符序列

当对字符串进行频繁修改的时候应该使用StringBuilder

常用构造方法:

public StringBuilder()

public StringBuilder(String str)

StringBuilder不是字符串

只是用于在做频繁修改字符串的时候使用的类,可以节省不必要的内存开销,提高性能

想将StringBuilder所表示的内容转化为字符串可以调用它的toString()方法
可以有增删改插

StringBuilder append(String str)
向字符串末尾追加新字符串 相当于字符串的 "+" 操作

StringBuilder insert(int index, String str)
向指定位置插入指定字符串,原位置的字符串顺序向后移动

StringBuilder delete(int from, int end)
删除字符串中指定范围内的字符

StringBuilder replace(int from, int end, String str)
将范围内字符串替换为给定的字符串

注意

Java中的字符串连接的过程就是利用StringBuilder实现的

String s = "AB"; String s1 = s + "CDE";

//String s1 = new StringBuilder(s).append("DE").toString();

StringBuffer是线程安全的,同步处理,性能稍慢
StringBuilder是非线程安全的,并发处理,性能稍快

你可能感兴趣的:(Java的字符串)