欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基础常用API之String

程序员文章站 2022-06-30 16:24:10
...

概述

java.lang包下,不须引用

常用构造方法

//1、String s = new String("value");
public String(String original);
//2、char[] ch = {'v','a','l','u','e'};String s = new String(ch);
public String(char[] value);
//3、char[] ch = {'v','a','l','u','e'};String s = new String(ch,2,2);
public String(char[] value,int index,int count);//index开始脚标,count长度
//4、直接等于某字符串
String str = "value";

String构造方法与赋值区别

String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
String s4 = new String("hello");
//true,hello字符串常量存放于方法区常量池,故s1、s2指向同一地址
System.out.println(s1 == s2);
//false
System.out.println(s1 == s3);
//false,new String("hello")每次执行都会在堆内存开辟新的空间存放hello字符串,故s3与s4指向不同的地址
System.out.println(s4 == s3);

常用成员方法:

判断类:

boolean equals(Object obj)//与指定对象比较
boolean equalsIgnoreCase(String s)//忽略大小写判断相等
boolean starsWith(String str)//是否以str开头
boolean endsWith(String str)//是否以str结尾

获取类:

int length()//字符串长度
char charAt(int index)//指定索引处的字符
int indexOf(String str)//str在该字符串第一次出现的索引值
String substring(int start)//从start位置开始到最后截取的字符串
String substring(int start,int end)//从start开始到end结束截取的字符串

转换功能:

char[]  toCharArray()//字符串转换字符数组
String toLowerCase()//转换为小写
String toUpperCase()//转换为大写

其他:

String trim()//删去空格(只删除头尾两端的空格,中间的不处理)
String[] split(String str)//以str为分隔符分隔字符串

拓展:StringBuffer与StringBuilder

概述

StringBuffer与StringBuilder都是为了更好地拼接字符串而产生的字符串缓冲区类,两者功能大致相同,区别在于StringBuffer线程安全,但增加了开销

为什么引入StringBuilder与StringBuffer

String str = "hello"+"world";
以上述字符串拼接为例,该过程共涉及到3个字符串常量,因此要在方法区常量池中开辟3个内存空间,而该过程完结后,hello和world就用不到了,但并不会被销毁,因此成为占内存的垃圾。

StringBuilder

常用构造方法:

public StringBuilder();//构建一个空的字符串构建器,初始容量16
public StringBuilder(String str);//构建一个初始化内容为str的字符串构建器

常用成员方法:

public int capacity();//返回当前容量,初始化为16
public int length();//长度
public StringBuilder append(任意类型变量);//添加数据,可以是引用变量,也可基本类型
public StringBuilder reverse();//反转顺序

与String转换

StringBuilder—>String

StringBuilder sb = new StringBuilder();
sb.toString();

String—>StringBuilder

String str =  "hello";
StringBuilder sb = new StringBuilder(str);