java字符串(String类)

java字符串

java中没有内置的字符串类型,而是在标准java类库中提供了一个预定义类,自然的叫做String.

  • 每个用双引号" "括起来的字符串都是一个String类的实例
  • java中的任意对象都能被转化成string字符串

字符串的子串

String类中提供了一些方法

其中substirng方法可以从较大的字符串中提取一个子串

    String lion = "shizi";
String zoo = lion.substring(0,3);

结果是创建了一个由"shi"组成的字符串

字符串的拼接

java语言允许用加号 + 将两个字符串拼接起来

 String a = "bana";
 String b = "na";
 String c = a + b;
结果是创建了一个由"banana"组成的字符串

如果需要把多个字符串放在一起,并且用多个字符串分割,可以使用join静态方法

Sting all  = String.join("/","m","l","xl");
//all 是 "m/l/xl"

不可变字符串

java在设计中,将String类对象设计成不可变字符串,这意味着不能修改字符串本身,而是使字符串变量引用的位置改变

例如
String a = "apple";
//此时想要把a变成apples
String a = a.substring(0,6)+"s";

这是java编辑器带来的优点之一,共享的高效率远大过于拼接或者修改

检测字符串是否相等

java中可以用equals方法来检测两个字符串是否相等

a.equals(b)
//返回值是boolean类型

equals方法并没有对字符串变量和字符串面量做要求

因此
  a.equals("help")
或者
  "help".equals(b)
是合法的

如果想要忽略大小写,可以使用equalsIgnoreCase方法

  • 检测字符串是否相等绝对禁止使用==方法,由于虚拟机的原因,这种方式可能会产成随机bug

空串和null串

  • 空串和null串并不相同\
  • 空串是一个String对象,长度是0,内容是""空
  • null串是String变量存放了一个特殊的值,名为null,代表没有任何变量与该对象相关联

有时要检测一个字符串既不为null又不为空,就要这样

if(a!= null && a.length! = 0)

码点与码点单元

java中String对象是由char值序列组成,而char类型是一个采用utf-16编码表示的unicode码点的代码单元.

length将返回字符串长度,也就是char类型码点单元的数量

例如
String a = "apple";
int b = a.length();
//b 是 5

要想得到实际的长度,也就是码点数量,需要用到codePoint方法

int b =a.codePoint(0,a.length());
//将返回字符串a的码点数量

String类提供了 50多个方法,一半以上都很有用


字符串的构建

在java中,每一次都是用String类重新构建字符串是很麻烦的,所以用到了StringBuffer和StringBuilder类(字符串构造器)

  • StringBuffer在要求线程同步安全时使用,
  • StringBuiler速度更快,推荐使用,但是不能线程同步访问
  • 使用方法
  •   //创建一个空的字符串构造器
      StringBuilder builder = new StringBuilder();
      //用append方法向字符串追加内容
      builder.append("app");
      builder.append("le");
      //返回一个由构造器或者缓冲器创建的字符串
      String food = builder.toString();
      System.out.println(builder+""+food);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值