字符串
string
- sting是Java定义好的一个类。定义在Java.lang包中,所以使用的时候不需要导包。
- Java程序中的所有字符串和文字(例如:“abcd”)都被视为此类的对象。
- 字符串不能改变,它们的值被创建后不能被修改的。
创建string对象的两种方式
-
直接赋值
string name = "阿伟"
-
通过new关键字
构造方法 说明 public Sting () 创建空白字符不含如何内容 pubic Sting (String original) 根据传入的字符串,创建字符串对象 public String (char[] chs) 根据字符数组创建字符对象 public String (byte [] chs) 根据字节数组,创建字符串对象
String 的内存原理
-
直接赋值
-
当使用双引号直接给字符串赋值时,系统会检测字符串在串池中是否存在。
存在:复原
不存在:创建新的
-
如果是使用new关键字
-
每一个赋值都会在堆中创建出一个小空间,占据了大内存,降低了代码的效率。
string的常用的方法
-
比较
基本数据类型比较的是数据
引用数据类型比较的是地址值
-
比较字符串对象中的数据是否完全相等
//比较字符串对象中的数据是否完全相等 boolean number1 = s1.equals(s2); System.out.println(number1);
-
比较字符串变量中的数据是否相等,忽略大小写(只能是英文状态下)
//比较字符串变量中的数据是否相等,忽略大小写 boolean number2 = s1.equalsIgnoreCase(s2); System.out.println(number2);
遍历字符串
public cha charAt(int index);根据索引返回字符串
public int length();返回字符串的长度
数组的长度:数组名.length;
字符串的长度:字符串对象.length();
//遍历字符串
for (int i = 0; i < str.length(); i++) {
//用c 来接收索引
char c = str.charAt(i);
stringBuilber
- 概述:stringBuilber可以看出一个容器,创建之后里面得内容是可以改变的
- 作用:提高字符串的效率
stringBuilber的常用方法
-
增加元素的方法
增加元素方法 sb.append(1);//增加int类型的 sb.append('好');//增加char类型的 sb.append(true);//增加doule类型
-
把StringBuilder转化为string类型的方法
String str=sb.toString()
-
反转
sb.reverse();
-
获取长度
//获取长度 int len = sb.length();
-
注:因为StringBuilder是Java已经写好的类,Java在低做一些特殊的处理,打印对象时不是地址值而是属性值。
链式编程
-
定义:当我们在调用一个方法的时候,不需要用变量接收结果,还可以继续调用其他方法。
-
代码如下:
int leg = getString().substring(1).replace("a","*").length(); System.out.println(leg);
string Joiner
-
概述:
string Joiner和stringBuilber一样,也可以看成一个容器,创建之后里面的内容是可改变的,
-
作用:
提高字符串的操作效率,而且代码编写特别简洁,但是目前市场很少用。
string Joiner的构造方法
方法名 | 说明 |
---|---|
public string Joiner(间隔符号) | 创建 string Joiner对象,指定拼接时的间隔符 |
public string Joiner(间隔符号,开始符号,结束符号) | 创建一个string Joiner对象,指定拼接时的间隔符号、开始符号、结束符号 |
-
成员方法
方法名 说明 public string Joiner add(增加元素) 增加数据并返回本身 public int length() 返回长度(字符出现的个数) public string tostring() 返回一个字符串(该字符串简单拼接之后的结果)
总结
-
string
表示字符串的类,定义了很多操作字符串的方法
-
stringBuilber
一个可变的操作字符串的容器
可以高效的拼接字符串,还可以将容器里面的内容反转。
-
string Joiner
JDK8出现的一个可变的操作字符串的容器,可以高效,方便拼接字符串。
在拼接的时候,可以指定间隔符,开始符号,结束符号。