zoukankan      html  css  js  c++  java
  • String类及其构造器和常用方法

    String类时lang包的内置类,使用时不需要引用。

    一、构造器

    String():通过new方法创建字符串

    String(byte[] byte):把字节数字转换为字符串

    异同比较:

    String str="abc";

    String str1=new String("abc");

    str 与str1有什么异同。

    首先,str==str1,是否成立。不成立。

    其次,str.equals(str1),是否成立。成立。

    为什么?

    因为String类的equals()方法比较的是值是否相等,很明显,str与str1的值相等。

    为什么str==str1不成立呢。因为String str="abc" 与 String str1=new String("abc")两种创建String类对象的底层方法是不同的。先说String str="abc" 这种创建String类对象的方法。此种方法创建对象,首先在常量池中搜索是否有“abc”字符串,如果有,则把该字符串的地址返回给栈。如果没有则创建一个"abc"字符串,然后把地址返回给栈引用。

    而new String()方法,首先在堆中创建一个对象,然后再去搜索常量池中是否有“abc”字符串,如果有,则把该字符串的地址返回给堆中的对象。如果没有则创建一个"abc"字符串,然后把地址返回给堆中的对象。此时栈保存的堆中对象的地址。

    很明显,new String()方法创建的对象地址是堆中的地址,而另一种方法对象的地址是常量池中地址。很明显,两个地址是不同的。

    另外,String str="abc"创建一个对象,而String str1=new String("abc")有可能创建了两个对象(在堆中创建了一个对象,如果常量池中没有“abc”字符串,还需要在常量池中创建一个对象)。

    二、常用方法

    int length():活动字符串的长度,注意与获得数组长度的区别,获得数组长度不需要括号

    char charAt(int index):获得指定索引的字符

    int codePointAt(int index):获得指定索引的字符的ASCII码

    int compareTo(String anotherstring):与另外一个字符串比较,如果<0,说明在被比较字符串之前;=0,则相等;>0,说明在被比较字符串之后。

    int compareToIgnoreCase(String anotherstring):比较时不区分大小写

    boolean startsWith():是否以某个子字符串开始

    boolean endtsWith():是否以某个子字符串介绍

    s.trim():去掉s字符串前后的空格,并返回一个新字符串

    boolean s.equals():比较两个字符串的值是否相等;

    int indexOf(int ch):返回指定字符的第一个索引。需要注意的是,可以用字符,也可以同字符的ASCII码

    eg.

    String str="hello world";

    int int1=str.indexOf("h");

    //int int2=str.indexOf(0);这两种写法是等价的

    int indexOf(int ch,int fromindex):从某个索引开始检索,然后返回指定字符的索引。注意包含fromindex索引。

     int indexOf(String str):返回指定子字符串的第一个索引。

     int indexOf(String str,int fromindex):从某个索引开始检索,然后返回指定子字符串的索引。

    String substring(int beginindex,int endindex):返回从beginindex(含)到endindex(不含)的子字符串。

    String replace(char oldchar ,char newchar):把字符串中的所有oldchar换成newchar并返回一个新字符串

    String replace(charsequnce target,charsequence replacement):将字符串中的所有target换成replacement并返回一个新字符串

    static String  valueOf(boolean a):将一个布尔值转化为字符串形式,静态方法。由于是静态方法,使用该方法是需要类调用。如:String .valueOf(b)

    static String valueOf(char a):返回字符a的字符串形式

  • 相关阅读:
    总结html5
    css加载方式link和@import的区别!
    JavaScript
    log4j log for java
    异常
    内部类
    抽象类和接口,封装、继承、多态
    类和对象
    html 基础知识
    html表单
  • 原文地址:https://www.cnblogs.com/hitnmg/p/9233025.html
Copyright © 2011-2022 走看看