一. 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一样.