Javase 0724
常用类续讲—(==与equals,String类,Scanner类及其它)
API applicattion programming Interface
Java API :
就是Java提供的类,这些类将底层实现封装起来
常见对象:object 常用类,是所有类的顶层父类,所有的类都是直接或简介继承自他
( 1 ) : hashcode
public int hashcode ( ) 返回该对象的哈希码值,默认情况下该方法会根据对象的地址计算,当然,不同对象的地址不相同,可以理解为逻辑地址值
( 2 ) : getclass
public final class getclass ( ) 返回运行时类,可以获取对象的真实类的全名称
( 3 ) : toString
就是打印该对象地址值, 类名+ @+ 十六进制 hashcode 以字符串形式返回,所以可以在sout ( ) 返回地址,加toString然后 override,同样的如果不满意可以自己重写
( 4 ) : Scanner 默认重写父类的toString
( 5 ) : equals 默认比较两个对象的地址值,是否相同,但是可以根据需求重写,比较两个对象的成员变量是否相同。举例
@Override
public boolean equals ( Object obj) {
if ( this == obj) {
return true ;
}
if ( ! obj instanceof Student ) {
return false ;
}
student stu = ( student) obj;
return this . age== obj. age&& this . name. equals ( stu. name) ;
}
== 与 equals 的区别
== 运算符比的是值,引用类型比地址值是否相等
equals方法,比较引用类型,默认比较地址值,可以重写,自定义类会比较成员变量值是否相等
( 6 ) : clone 一个接口中没有任何抽象方法,我们称之为标记接口,目的是给一个类打一个标记,让JVM支持,没有任何方法
浅克隆:克隆一个对象是,如果克隆对象维护了另外对象时,只克隆这另外一个对象的地址,不克隆对象本身,也不会掉调用构造方法
深克隆:留存
Scanner 输入和判断
Scanner sc = new Scanner ( System. in) ;
if ( sc. hasNextInt ( ) ) {
int i= sc. nextInt ( ) ;
} else {
System. out. println ( "error" ) ;
}
当你先录入整数,使用nextline ( ) ; 会发现字符串没让你录入,原因就是回车换行默认为字符串,解决方法:
( 1 ) 可以在录字符串时new 一个新对象
( 2 ) 可以使用next ( ) 来录入对象 String s= sc. next ( ) ; String 类 字符串就是由一个或多个字符组成的数列
判断 equals boolean a = "abc" . equals ( "abc" ) ;
equalsIgnoreCase 不区分大小写
isempty
startWith ( ) 张三姓不姓张 endsWith ( )
contains ( ) 张三里有没有三
举例:三次登录
public class demo4 {
public static void main ( String[ ] args) {
String name= "张三" ;
String password = "123456" ;
Scanner sc= new Scanner ( System. in) ;
System. out. println ( "请输入姓名:" ) ;
for ( int i = 2 ; i > 0 ; i-- ) {
String s1= sc. next ( ) ;
if ( s1. equals ( name) ) {
System. out. println ( "请输入密码" ) ;
String s2= sc. next ( ) ;
if ( s2. equals ( password) ) {
System. out. println ( "输入正确" ) ;
} else {
System. out. println ( "输入错误,还剩" + i+ "次机会" ) ;
}
} else {
System. out. println ( "输入错误,还剩" + i+ "次机会" ) ;
}
}
}
}
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) : 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
public String substring ( int start) : 从指定位置开始截取字符串, 默认到末尾。
public String substring ( int start, int end) : 从指定位置开始到指定位置结束截取字符串。
String 类的转换功能:
public byte [ ] getBytes ( ) : 把字符串转换为字节数组。
public char [ ] toCharArray ( ) : 把字符串转换为字符数组。
public static String valueOf ( char [ ] chs) :
把字符数组转成字符串。
public static String valueOf ( int i) : 把int 类型的数据转成字符串。
注意:String类的valueOf方法可以把任意类型的数据转成字符串。
public String toLowerCase ( ) : 把字符串转成小写。
public String toUpperCase ( ) : 把字符串转成大写。
public String concat ( String str) : 把字符串拼接。
String 类的其他功能
public String replace ( char old, char new )
将指定字符进行互换
public String replace ( String old, String new )
将指定字符串进行互换
public String trim ( )
去除两端空格
String 按字典顺序比较两个字符串
public int compareTo ( String str)
会对照ASCII 码表,从第一个字母进行减法运算 返回的就是这个减法的结果,如果前面几个字母一样会根据两个字符串的长度进行减法运算返回的就是这个减法的结果
public int compareToIgnoreCase ( String str)
忽略大小写的比较