您的位置:首页 > 移动开发 > Objective-C

API--Object,String,Scanner--1

2015-07-16 17:25 591 查看
/*

* 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: