Java记录4--string

1.toString所有的类都默认自动继承了Objiect类

2.Object类中的toString方法返回的时类的名字和该哈希表码组成的一个字符串,

System.out.println(类对象名)实际输出的是该对象的toString方法所返回的字符串

3.所有类都从Object类继承了equals方法,源码如下

public boolean equals(Object obj)

{  return this == obj;}

 4.object中的equals方法是直接判断调用equals的对象和形参obj所引用的对象是否为同一对象,即是否是内存中同一块存储单元,如果this和obj指向同一块内存对象,返回true,否则返回false,即使是内容完全相等的两块不同的内存对象,也会返回false

5.如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法

6.string类已经重写了object中的equals方法,可以用来判断两个对象的内容是否相等

public class A
{
    public static void main(String [] args)
    {    //s1 s2 存放在堆区
    String s1 = new String ("china");
    String s2 = new String ("china");
    System.out.println(s1.equals(s2));//true
    System.out.println(s1 ==s2 );//false         
    
    //s3 s4的china存放在数据区
    String s3 = "china";
    String s4 = "china";
    System.out.println(s3.equals(s4));//true
    System.out.println(s3 ==s4 ); //true                       
    }
}

 7,String常用方法总结

1.public char charAt (int index)

返回字符串中第index字符

2.public int length()

返回字符串的长度

3.public int indexOf (String str)

返回字符串中出现str的第一个位置

4.public int indexOf (String str , int fromIndex)

返回字符串中从fromIndex从from开始出现str的第一个位置

5.public boolean equalsIgnoreCase (String another)

比较字符串与another 是否一样(忽略大小写)

6.public String replace(char oldChar , char newChar)

在字符串中用new字符串 替代old字符串

7.public boolean startsWith (String prefix)

判断字符串是否已prefix字符串开头

8.public boolean endsWith(String suffix)

判断是否以suffix结尾

9.public String toUpperCase()

返回一个字符串的大写形式

10.ublic String toLowerCase()

返回一个字符串的小写形式

11.public String substring( int beginIndex , int endIndex)

返回该字符串从begin开始到end结尾的字符串

public class A
{
    public static void main(String [] args)
    {
        String s1 = "zmzb",s2 = "ZMZB";
        System.out.println(s1.charAt(1));//m
        System.out.println(s1.length());//4
        System.out.println(s1.indexOf('m'));//1,z下标是0
        System.out.println(s1.indexOf('s'));//-1
        System.out.println(s1.equals(s2));//false
        System.out.println(s1.equalsIgnoreCase(s2));//true
        
        String sr = "狂人日记";
        String ssr = sr.replace('日','周');
        System.out.println(ssr);//狂人周记
    }
    
}

8.StringBuffer类

由来:string类对象一旦创建就不可更改,如果经常对字符串内容进行修改,则使用string buffer,否则既耗时间又耗空间

string类中没有修改字符串的方法,但是stringbuffer类中大量拥有

9.string buffer类的构造函数

public StringBuffer()

创建一个空的没有任何字符的StringBuffer对象

public StringBuffer(int capacity)

创建一个不带字符,但具有指定出生容量的字符串缓冲区

public StringBuffer(String str)

创建一个StringBuffer对象,包含与str对象相同的字符序列

10.常用方法

public StringBuffer delete(int start ,int end)

删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用

public class A
{
    public static void main(String [] args)
    {
        StringBuffer sb = new StringBuffer();
        sb.append("abc");
        sb.append("123");
        System.out.println(sb);//abc123
        sb.insert(3,"--");//在下标为3的位置插入
        System.out.println(sb);//abc--123
        sb.delete(2,6);
        System.out.println(sb);//ab23
        sb.reverse();//逆序
        String str = sb.toString();//32ba
        System.out.println(str);//32ba
    }
}
原文地址:https://www.cnblogs.com/zhuimingzhenbai/p/12268438.html