API--Object,String,Scanner--1
2015-07-16 17:25
591 查看
/*
* Object类: 是层次结构的根类,所有的类都直接的或者间接的继承这个类
* 构造方法:
* public Object();
*/
/**
* public int hashCode():返回该对象的哈希码值*
* a: 不同的对象的hashCode值不同*
*/
/*
* public final Class getClass(): 返回此 Object 的运行时类。
* Class 类中的方法:
* public String getName(): 返回该类的全类名
*/
public String toString():返回该对象的字符串表示。
源代码:
public String toString() {
return getClass().getName() + “@” + Integer.toHexString(hashCode());
}
打印地址值没有意义,所以我们应该复写toString()方法. 复写toString()方法的原则,是返回所有的成员变量的字符串拼接形式
*/
/*
* public boolean equals(Object obj): 比较两个对象是否相等 *
* equals方法的源代码:
* public boolean equals(Object obj) {
return (this == obj);
} *
* equals方法默认比较的是地址值,而比较地址值没有意义, 所以我们需要重写equals方法.
* 如何重写equals方法呢?
* 重写的原则是比较成员变量是否相等,如果相等我们就认为是同一个对象 *
* ==和equals的区别:
* == : ==可以用来比较基本数据类型也可以比较引用数据类型,比较引用数据类型,比较的是地址值
* equals:
* equals不能比较基本数据类型,只能引用数据类型,而比较引用数据类型,默认比较的是地址值
* 如果我们想建立自己的比较方式,我们需要重写equals方法
*/
/*
* String字符串: 就是多个字符组成的一串数据
* 字符串本身也可以看做成字符数组
* 特点:
* a: 字符串字面值(比如:”abc”)也可以看成一个字符串对象
* b: 一旦被创建值就不能被改变
* 构造方法:
* public String():空构造
public String(byte[] bytes):把字节数组转成字符串
public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)
public String(char[] value):把字符数组转成字符串
public String(char[] value,int index,int count):把字符数组的一部分转成字符串
public String(String original):把字符串常量值转成字符串
获取字符串的长度:
public int length(): 获取字符串的长度
*/
这里写代码片
“`
/*
* String类中和获取相关的方法:
* public int length(): 获取字符串的长度。
public char charAt(int index): 获取指定索引位置的字符
public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。
public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。
public int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
lastIndexOf系列
public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
*/
* Object类: 是层次结构的根类,所有的类都直接的或者间接的继承这个类
* 构造方法:
* public Object();
*/
public class ObjectDemo { public static void main(String[] args) { // 创建对象 Object obj = new Object(); System.out.println(obj); } }
/**
* public int hashCode():返回该对象的哈希码值*
* a: 不同的对象的hashCode值不同*
*/
public class ObjectDemo2 { public static void main(String[] args) { // 创建学生对象 Student s1 = new Student(); Student s2 = new Student(); Student s3 = s1 ; // 调用hashCode方法 int hashCode1 = s1.hashCode() ; int hashCode2 = s2.hashCode() ; int hashCode3 = s3.hashCode() ; System.out.println(hashCode1); System.out.println(hashCode2); System.out.println(hashCode3); } } class Student { private String name ; private int age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
/*
* public final Class getClass(): 返回此 Object 的运行时类。
* Class 类中的方法:
* public String getName(): 返回该类的全类名
*/
public class ObjectDemo3 { public static void main(String[] args) { // // 创建学生对象 // Student s1 = new Student(); // // 获取字节码文件的描述信息对象 // Class class1 = s1.getClass() ; // // 返回该类的全类名 // String className = class1.getName() ; // System.out.println(className); // cn.itcast.object_3.Student // } }
public String toString():返回该对象的字符串表示。
源代码:
public String toString() {
return getClass().getName() + “@” + Integer.toHexString(hashCode());
}
打印地址值没有意义,所以我们应该复写toString()方法. 复写toString()方法的原则,是返回所有的成员变量的字符串拼接形式
*/
public class ObjectDemo4 { public static void main(String[] args) { // 创建学生对象 Student s = new Student(); // 给成员变量赋值 s.setName("小明"); s.setAge(24) ; // 调用toString()方法 String result = s.toString() ; // 输出 System.out.println(result); // cn.itcast.object_4.Student@19bb25a System.out.println(s.toString()); // 默认调用toString方法 System.out.println(s); // String result2 = s.getClass().getName() + "@" + Integer.toHexString(s.hashCode()) ; // System.out.println(result2); } }
/*
* public boolean equals(Object obj): 比较两个对象是否相等 *
* equals方法的源代码:
* public boolean equals(Object obj) {
return (this == obj);
} *
* equals方法默认比较的是地址值,而比较地址值没有意义, 所以我们需要重写equals方法.
* 如何重写equals方法呢?
* 重写的原则是比较成员变量是否相等,如果相等我们就认为是同一个对象 *
* ==和equals的区别:
* == : ==可以用来比较基本数据类型也可以比较引用数据类型,比较引用数据类型,比较的是地址值
* equals:
* equals不能比较基本数据类型,只能引用数据类型,而比较引用数据类型,默认比较的是地址值
* 如果我们想建立自己的比较方式,我们需要重写equals方法
*/
public class ObjectDemo5 { public static void main(String[] args) { // 创建两个学生对象 Student s1 = new Student("小明" , 24); Student s2 = new Student("小明" , 24); Student s3 = new Student("小花" , 24); // == ,equals System.out.println(s1 == s2); System.out.println(s1.equals(s2)); System.out.println(s1.equals(s3)); } }
/*
* String字符串: 就是多个字符组成的一串数据
* 字符串本身也可以看做成字符数组
* 特点:
* a: 字符串字面值(比如:”abc”)也可以看成一个字符串对象
* b: 一旦被创建值就不能被改变
* 构造方法:
* public String():空构造
public String(byte[] bytes):把字节数组转成字符串
public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)
public String(char[] value):把字符数组转成字符串
public String(char[] value,int index,int count):把字符数组的一部分转成字符串
public String(String original):把字符串常量值转成字符串
获取字符串的长度:
public int length(): 获取字符串的长度
*/
public class StringDemo { public static void main(String[] args) { // public String():空构造 String s1 = new String(); // 输出该对象的长度 System.out.println("s1: " + s1.length()); System.out.println("------------------------------"); // public String(byte[] bytes):把字节数组转成字符串 // 创建字节数组 byte[] bytes = {97 , 98 , 99 , 100}; String s2 = new String(bytes); // 输出该对象的长度 System.out.println("s2: " + s2.length()); System.out.println("s2: " + s2); System.out.println("--------------------------------"); // public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度) String s3 = new String(bytes , 1 , 2< dd44 /span>); System.out.println("s3 : " + s3.length()); System.out.println("s3 : " + s3); System.out.println("-------------------------------"); // public String(char[] value):把字符数组转成字符串 // 定义一个字符数组 char[] chs = {'a' , 'b' , 'c' , 'd'}; String s4 = new String(chs); System.out.println("s4 : " + s4.length()); System.out.println("s4 : " + s4); System.out.println("-------------------------------"); // public String(char[] value,int index,int count):把字符数组的一部分转成字符串 String s5 = new String(chs , 0 , 3); System.out.println("s5 : " + s5.length()); System.out.println("s5 : " + s5); System.out.println("-------------------------------"); // public String(String original):把字符串常量值转成字符串 String s6 = new String("helloWorld"); System.out.println("s6 : " + s6.length()); System.out.println("s6 : " + s6); System.out.println("-----------------------------"); String s7 = "abc"; System.out.println("s7: " + s7.length()); System.out.println("s7: " + s7); } } ``` //String s = new String(“hello”)和String s = “hello”;的区别 // 创建了两个对象: // 首先会在堆内存中创建一个对象, 然后在方法区的字符串常量池中创建一个"Hello"对象, // 然后将"Hello"对象复制一份,放进堆内存 // String s = new String("Hello"); // 创建了一个对象: 在方法区的字符串常量池中 // String s = "hello" ; // ==和equals()的区别? /* * == : 可以用来比较基本数据类型,也可以比较引用数据类型,比较引用数据类型,比较的是地址值 * equals: 只能用来比较引用数据类型,默认比较的是地址值,如果我们想建立自己的一个比较方式,我们应该复写equals方法 */ /* * String类中和判断相关的一些方法: * public boolean equals(Object obj): 比较字符串的内容是否相同,区分大小写 public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写 public boolean contains(String str): 判断字符串中是否包含传递进来的字符串 public boolean startsWith(String str): 判断字符串是否以传递进来的字符串开头 public boolean endsWith(String str): 判断字符串是否以传递进来的字符串结尾 public boolean isEmpty(): 判断字符串的内容是否为空。 isEmpty()是判断字符串的内容为空,还是判断字符串这个对象为空? */ <div class="se-preview-section-delimiter"></div>
这里写代码片
“`
public class StringDemo { public static void main(String[] args) { // 定义一个字符串 String s1 = "abcd"; String s2 = "Abcd"; // public boolean equals(Object obj):比较字符串的内容是否相同,区分大小写 System.out.println("s1.equals(s2) : " + s1.equals(s2)); System.out.println("----------------------------"); // public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写 System.out.println("s1.equalsIgnoreCase(s2): " + s1.equalsIgnoreCase(s2)); System.out.println("----------------------------"); // public boolean contains(String str):判断字符串中是否包含传递进来的字符串 // 是用来判断连续的 System.out.println("s1.contains(a): " + s1.contains("a")); System.out.println("s1.contains(ab): " + s1.contains("ab")); System.out.println("s1.contains(ac): " + s1.contains("ac")); System.out.println("--------------------------------------"); // public boolean startsWith(String str):判断字符串是否以传递进来的字符串开头 System.out.println("s1.startsWith(a): " + s1.startsWith("a")); System.out.println("s1.startsWith(ab): " + s1.startsWith("ab")); System.out.println("s1.startsWith(b): " + s1.startsWith("b")); System.out.println("---------------------------------------"); // public boolean endsWith(String str): 判断字符串是否以传递进来的字符串结尾 System.out.println("s1.endsWith(d): " + s1.endsWith("d")); System.out.println("s1.endsWith(c): " + s1.endsWith("c")); System.out.println("----------------------------------------"); // public boolean isEmpty():判断字符串的内容是否为空。 // String s = null ; // NullPointerException: 空指针异常 // s.isEmpty() ; // 判断字符串的内容是否为空 String s = "hello"; String s3 = "" ; System.out.println("s.isEmpty(): " + s.isEmpty()); System.out.println("s.isEmpty(): " + s3.isEmpty()); } }
/*
* String类中和获取相关的方法:
* public int length(): 获取字符串的长度。
public char charAt(int index): 获取指定索引位置的字符
public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。
public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。
public int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
lastIndexOf系列
public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
*/
public class StringDemo { public static void main(String[] args) { // 定义一个字符串 String s = "helloworldjava"; //public int length(): 获取字符串的长度。 System.out.println("s.length(): " + s.length()); System.out.println("------------------------"); // public char charAt(int index):获取指定索引位置的字符 char ch = s.charAt(0); System.out.println(ch); // java.lang.StringIndexOutOfBoundsException: 字符串角标越界异常 // 因为我们访问了不存在的索引 // System.out.println(s.charAt(-1)); System.out.println("------------------------"); // public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。 System.out.println("s.indexOf(97): " + s.indexOf(97)); System.out.println("s.indexOf('a'): " + s.indexOf('a')); System.out.println("------------------------"); // public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。 // "helloworldjava" System.out.println(s.indexOf("owo")); System.out.println(s.indexOf("li")); //没有找到就返回-1 System.out.println("------------------------"); // public int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。 System.out.println(s.indexOf('a', 12)); System.out.println("------------------------"); // public int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。 System.out.println(s.indexOf("l", 5)); System.out.println("-------------------------"); // 可以顺带提一下lastIndexOf系列 System.out.println(s.lastIndexOf('a')); System.out.println("-------------------------"); // "helloworldjava" // public String substring(int start):从指定位置开始截取字符串,默认到末尾。 String s2 = s.substring(5) ; System.out.println("s2 : " + s2); System.out.println("s : " + s); System.out.println("-------------------------"); // public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。 // 包含头不包含尾 String s3 = s.substring(0, 4); System.out.println(s3); } }
相关文章推荐
- net.sf.json.JSONObject 和org.json.JSONObject 的差别
- Objective-C Runtime (转载)
- Swift 调用 Objective-C 代码
- merge javascript Object
- [转]ECMAScript5 Object的新属性方法
- Objective-c单例模式的正确写法--用dispatch 线程安全
- Objective 和 Swift相互调用
- OC基础回顾(六)了解和使用Xcode
- Objective-C 属性特性详解
- qtobject简介
- Objective-C之内存管理
- 【Objective-C】self关键字
- 【Objective-C】 OC编码规范
- 对象引用(object reference)与对象指针的区别
- IOS开发系列--Objective-C之KVC、KVO
- 第5章分布式系统模式 Data Transfer Object(数据传输对象)
- 第5章分布式系统模式 Data Transfer Object(数据传输对象)
- Objective-C特性:Runtime
- 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)
- Objective-C中的@Property详解