• String类


    String类的功能:用来操作字符串,一般的字符串的功能都在这里面,

    1,  可以把任意对象和数组转化成字符串 

    字符串比较的区别?

    1,  ==  对于两个对象的地址值作比较是否相等

    2,  Equals 判断两个对象的内容是否相等

    字符串赋值的内存原理?

     String s = “3434”  这种类型的是简化的,右边都是常量,不能改变的,如果再次赋值的也是再创建了一个,在内存中是不会消失的,在堆内存中因为。

     String s = “3434”+”4”当这样的时候,前面的3434也是指的上面一个创建过的字符。如果常量在内存中有的话不会再创建只会引用这个常量,但如果是变量的话,就不同了,会在内存中再new一个新的变量出来,因为不是常量,所以是会变化的,不确定性。

    String的方法:

    1,  获取:

    1,  获取字符串的长度:length();

    2,  指定位置的字符。Char charAt(int index);

    3,  获取指定字符的位置。索引不存在返回-1,所以通过返回值-1来判断一个字符不在在的情况。

    int indexOf(int ch);

    int indexOf(int ch,int fromIndex);

    int indexOf(String str);

    int indexOf(String str,int fromIndex);

    int lastIndexOf(int ch);

    int lastIndexOf(int ch,int fromIndex);

    int lastIndexOf(String str);

    int lastIndexOf(String str,int fromIndex);    

    4,获取子串。

    String substring(int start);//从start位开始,到length()-1为止。

    String substring(int start,int end);//从start开始到end为止。//包含start不包含end

    获取整串 substring(0,str.length()); 

    2,判断

    1,  字符串中包含指定的字符串吗?

    Boolean contains(String substring);

    2,  字符串是否以指定字符串开头?

    Boolean startsWith(string);

    3,字符串是否以指定字符串结尾啊?

    boolean endsWith(string);

    4,判断字符串是否相同

    boolean equals(string);覆盖了Object中的方法,判断字符串内容是否相同。

    5,判断字符串内容是否相同,忽略大小写。

    boolean equalsIgnoreCase(string):   

    3 转换:

    1,通过构造函数可以将字符数组或者字节数组转成字符串。

    2,可以通过字符串中的静态方法,将字符数组转成字符串。

    static String copyValueOf(char[] );

    static String copyValueOf(char[],int offset,int count);

    static String valueOf(char[]);

    static String valueOf(char[],int offset,int count);

    3,将基本数据类型或者对象转成字符串。

    static String valueOf(char);

    static String valueOf(boolean);

    static String valueOf(double);

    static String valueOf(float);

    static String valueOf(int);

    static String valueOf(long);

    static String valueOf(Object);

    4,将字符串转成大小写。

    String toLowerCase();

    String toUpperCase();

    5,将字符串转成数组。

    转成字符数组。

    char[] toCharArray();

    转成字节数组。

    byte[] getBytes();//可以加入编码表。

    6,将字符串转成字符串数组。切割方法。

    String[] split(分割的规则-字符串);

    7,将字符串进行内容替换。变成新字符串。

    String replace(oldChar,newChar);

    String replace(oldstring,newstring);

    8,对字符串进行追加。

    String concat(string);  

    StringBuffer和StringBuilder的区别?

             StringBuffer安全是1.5以前的,StringBuilder高效,是升级以后的。里面的方法都一样两个都是容器,是缓冲区用来放相同类型的数据的,容器的长度可以改变。

    1,添加。

    StringBuffer append(data):在缓冲区中追加数据。追加到尾部。

    StringBuffer insert(index,data):在指定位置插入数据。 

    2,删除。

    StringBuffer delete(start,end);

    StringBuffer deleteCharAt(index); 

    3,修改。

    StringBuffer replace(start,end,string);

    void setCharAt(index,char);

    void setLength(len); 

    4,查找。

    int indexOf(string);

    int indexOf(string,int fromIndex);

    int lastIndexOf(string);

    int lastIndexOf(string,int fromIndex); 

    5,获取子串

    string substring(start);

    string substring(start,end); 

    6,反转。

    StringBuffer  reverse()     

    基本数据类型对象?

    所以基本数据类型为了方便使用全部封装成了对象,对象有很多功能可以全用,而且类类型的对象可以当基本数据一样来用,有自动装箱和拆箱的功能,系统都自动完成了。如果使用基本数据类型除了跟变量一样的使用,还多了用对象调用方法的功能,方便很多了就。如果操作数据对象时超出了数值的范围,那么这个对象运算的结果不会是跟变量一样了,一但超出就会是字符串的运算模式去运行了。

      public static void main(String[] args) {
      byte by = (byte)234;//如果是小于-128~127之间的数不用强转;101 1011 1010 0000>>010 0100 0101 1111+1>>010 0100 0110 0000
      Byte b = new Byte(by);//1110 1010>>0001 0101+1>>0001 0110溢出,在有效位之间的都置为1
      System.out.println(b);//-22产生溢出,但是不会报错,也不会跑异常。
      
      Byte bb =  new Byte("234");
      System.out.println(bb);
     }

    byte Byte

    short Short  

    int  Integer

    long Long

    float Float

    double Double

    char Character

    boolean Boolean

    1,以上是所有基本数据类型和与之对应的对象,这些对象之间都可以与字符串相互转化。

    可以用paserXXX(numstring)方法来转化。

    3,  进制之间也可以转化十进制转成别的,或者别的进制转成十进制,用Integer里在的方法。

    4,  将一个十进制整数转成其他进制。

    转成二进制:toBinaryString

    转成八进制:toOctalString

    转成十六进制:toHexString》》System.out.println(Integer.toHexString(23));

    8,toString(int num,int radix);将十进制转为任意进制。System.out.println(Integer.toString(28,8));//结果为34

    9, 将其他进制转换十进制。

    parseInt(string,radix);  

    System.out.println(Integer.parseInt("12", 8));//将八进制中的12转为十进制,结果为10           

  • 相关阅读:
    【scala语言入门】二、匿名函数
    【scala语言入门】 一、apply与unapply
    关于timeOut超时后是否会回滚的思考
    [算法]-插入排序
    【oenCV系列】 写视频
    【Opencv系列】
    Factory Method模式精解(C++版本)
    Template Method模式精解(C++版本)
    Adapter模式精解(C++版本)
    迭代器模式精解(C++版本)
  • 原文地址:https://www.cnblogs.com/ydpvictor/p/2774158.html
Copyright © 2020-2023  润新知