【学习笔记】java常用类object和String,StringBuffer

一. Object 类

1. toString 方法,具体查看文档

package com.zhihen.object;



//默认继承Object

//public class TestOjbect extends Object(){

//}

public class TestObject {

    private int id;

    private String name;

    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    

    public static void main(String[] args){

        TestObject testobject = new TestObject();

        System.out.println(testobject);

    }

    

}    

 

打印结果:

com.zhihen.object.TestObject@659e0bfd


按Alt + Shift + s 源码,点击重写方法

这里重写 toString方法

@Override

    public String toString() {

        return "TestObject [id=" + id + ", name=" + name + ", toString()="

                + super.toString() + "]";

    }

改写成:

    @Override

    public String toString() {

        return "我是toString的重写方法!";

    }

运行结果:

我是toString的重写方法!

 

2. equals方法

对象相同,在物理空间上不可能相同,但在逻辑空间上可以相同。

 

二. 字符串

1. 理解字符串是一个常量。

可以进行常量见的加法。

如下:

String str = "abc";

str = str + "qqq";

System.out.println(str);

 

2. string的方法举例,详细请看java文档,查看用法,返回值,并尝试使用理解一些常用方法

length方法

package com.zhihen.object;



public class TestString {

    public static void main(String[] args){

        String str = "你好啊,我觉得java不错!";

        String str2 = "   hao";

        System.out.println(str.length());

        System.out.println(str2.length());

    }

}

执行结果:

14

6

 

trim方法

package com.zhihen.object;



public class TestString {

    public static void main(String[] args){

        String str = "你好啊,我觉得java不错!";

        String str2 = "   hao";

        System.out.println(str.length());

        System.out.println(str2.length());

        

        str2 = str2.trim();

        System.out.println(str2.length());

        

    }

}

执行结果:

14

6

3

注意trim的用法,trim的用法就是去掉打印出来的空格。

 

charArt方法

对上述的代码添加如下语句,charArt的用法!

for (int i = 0; i < str.length(); i++){

            System.out.println(str.charAt(i));

        }

 

执行结果:

14

6

3

你

好

啊

,

我

觉

得

j

a

v

a

不

错

!

 

 endsWith方法

package com.fjnu.study;



public class TestObject {

    public static void main(String[] args){

        MethodOne();

    }

    private static void MethodOne(){

        String str = "test.bmp";

        System.out.println(str.endsWith("bmp"));

    }

}

执行结果:
true

 

此外,string的常用方法有:

1. int length();
2.String trim();
3. char charAt(int index);
4. int compareTo(String oth);
5. String concat(String oth) / +
6. byte[] getBytes(); 有重载方法
7. char[] toCharArry();
8. String toLowerCase()
9. String toUpperCase()

10. startsWith(String str);
11. endsWith(String str);
12. equals(); / ==  //(注意)
13. equalsIgnoreCase();
14. int indexOf(String sub); //有重载方法
15. int lastIndexOf(String sub);//有重载方法
16. substring(int start,int end);//有重载方法(注意)
17. String replace(char ochar,char nchar);
18. String replaceAll(String regex,String nchar);

 

具体用法,查阅java文档

 

 3. String 中 equals的用法(理解上容易出错)

重点: equals和==的区别  

equals 是值比较 , 而 ==   地址比较
注:String重写了Object类中的hashCode(), equals(), toSting()方法;

package com.fjnu.study;



public class TestObject {

    public static void main(String[] args){

        //MethodOne();

        Equals();

    }

    private static void MethodOne(){

        String str = "test.bmp";

        System.out.println(str.endsWith("bmp"));

    }

    private static void Equals(){

        String str1 = "abc";

        String str2 = "abc";

        

        System.out.println(str1 == str2);

        System.out.println(str1.equals(str2));

    }

}

运行结果:

true

true

建议对于字符的比较,使用equals而不用==

 

index可以截取文件名的后后缀名, 实现文件查找(根据后缀名)

private static void Filename(){

        String filename = "‪‪D:\\abc.txt";

        System.out.println(filename.indexOf("."));

        System.out.println(filename.substring(filename.indexOf(".")));

    }

运行结果:

8

.txt

把"."改为"t", 运行结果: txt

private static void Filename(){

        String filename = "‪‪D:\\abc.txt";

        System.out.println(filename.indexOf("."));

        System.out.println(filename.substring(filename.indexOf("."), filename.length()));

    }

代码后面加个长度, 可以控制输出范围.

 

replace替换

private static void Replace(){

        String str = "I love C#";

        str = str.replaceAll("C#", "Java");

        System.out.println(str);

    }

执行结果:

I love Java


split分割方法

private static void Split(){

        String ip = "192.169.1.3";

        String[] Array = ip.split("\\.");

        for(int i = 0; i < Array.length; i++){

            System.out.println(Array[i]);

        }

执行结果:

192

169

1

3


注意split("\\s");可以表示空白的地方.

如:

private static void Split(){

        String ip = "192 169  1   3";

        String[] Array = ip.split("\\s");

        for(int i = 0; i < Array.length; i++){

            System.out.println(Array[i]);

        }

运行结果:

192

169



1





3


三. StringBuffer 缓冲区字符

1. 增加 用 append

package com.fjnu.study;



public class TestStringBuffer {

    public static void main(String[] args){

        StringBuffer buffer = new StringBuffer();

        buffer.append("a");

        buffer.append("b");

        System.out.println(buffer.toString());

    }

}

输出结果:

ab

 

2. 插入用 insert

package com.fjnu.study;



public class TestStringBuffer {

    public static void main(String[] args){

        StringBuffer buffer = new StringBuffer();

        buffer.append("a");

        buffer.append("b");

        

        buffer.insert(1, "HelloWord ");

        

        System.out.println(buffer.toString());

    }

}

运行结果:

aHelloWord b


3.修改用setCharAt

public class TestStringBuffer {

    public static void main(String[] args){

        StringBuffer buffer = new StringBuffer();

        buffer.append("a");

        buffer.append("b");

        

        buffer.insert(1, "HelloWord ");

        buffer.setCharAt(2,'A');

        

        System.out.println(buffer.toString());

    }

}
aHAlloWord b

 

4.删除 delect(开始位置, 到结束位置)

package com.fjnu.study;



public class TestStringBuffer {

    public static void main(String[] args){

        StringBuffer buffer = new StringBuffer();

        buffer.append("a");

        buffer.append("b");

        

        buffer.insert(1, "HelloWord ");

        buffer.setCharAt(2,'A');

        buffer.delete(1, 3);

        

        System.out.println(buffer.toString());

    }

}
alloWord b


注意: StringBuffer会比较快, 所以在追加字符的时候, 用StringBuffer 而不用String +

 

五. StringBuilder 用来代替 StringBuffer 因为比它快.

用法和StringBuffer一样.

你可能感兴趣的:(StringBuffer)