java中的String类

java中把String类定义为final类,因此用户不能扩展String类,即String不可以有子类。
构造String对象
常量对象
String常量也是对象,是用双引号括起来的序列。java用户程序中的String常量放在常量池中,因为String常量是对象,所以也有自己的引用和实体。
String对象

String s=new String();

对象s中存放着引用,表明自己的实体位置,即new运算符首先分配内存空间并在内存空间中放入字符序列,然后计算出引用,将引用赋值给对象s.
另外用户无法输出String对象的引用,而是对象的实体.
String类常见的构造方法:
用一个已创建的S特ing类创建另一个String对象.
String(char a[])用一个字符数组a创建一个String对象.
String(char a[], int startIndex, int count)提取字符数组a中的一部分字符创建一个String对象,参数分别为起始位置和取字符的个数.
字符串的并置:
String可以用+进行并置运算,即首尾相接得到一个新的字符串.
但需要注意的是,参与并置运算对象的String对象,只要有一个是变量,那么java就会在动态内存区存放得到的新String对象的引用和实体,也就相当于new String();如果是两个常量进行并置运算,那么得到的结果仍是常量,如果常量池没有将这个常量放入常量池,那么相加的结果就是常量池中已有的结果.

public class Test {
    public static void main(String[] args) {
      String hello="你好";
      String testOne="你"+"好";
      System.out.println(hello==testOne);
      System.out.println("你好"==testOne);
      System.out.println("你好"==hello);  //输出结果都为true
        String you="你";
        String hi="好";
        String testTwo=you+hi;
        System.out.println(hello==testTwo);
        String testThree=you+hi;
        System.out.println(testTwo==testThree);//输出结果都为false

    }
}

这是java中的常量折叠的编译优化技术
但程序往往更关心String类的实体而不是引用所以接下来就是String的常用方法:
public int length()
String类中的length()方法来获取String对象的字符序列长度.
public boolean equals(String s)
String 对象调用equals(String s)方法来比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同
用法:a.equals(b);但是比较时忽略大小写.

public boolean  startsWith(String s);
public boolean  endWith(String s);

判断当前字符前缀和后缀是否与参数指定字符s相同.

public  int] compareTo(String s)

按照字典序比较两个字符串的大小和c语言中strcmp函数类似.

public boolean contains(String s);

判断当前对象的字符序列是否包含参数序列

public int indexOf(String s);
public  int lastIndexOf(String s);

从当前/末尾索引位置开始检索参数字符序列出现的位置,如果未找到则返回-1,可以调节起始位置.

public String subString(int startpoint);

字符对象调用该方法获取一个新的String对象.subString(int start,int end)参数分别为起始位置和结束位置.

public String trim();

String调用trim()方法得到一个去掉前后空格的String对象
字符串与基本数据类型的相互转化
java.lang包中的Integer类调用其类方法public static int parseInt(String s)可以将由"数字"字符组成的字符转化为int型数据.

int s;
String s="231231";
x=Integer.parseInt(s);

类似的,使用java.lang包中的Byte,Short,Long,Float,Double类调用相应类方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值