文档详情

2.1字符串对象的比较.doc

发布:2017-04-20约4.95千字共15页下载文档
文本预览下载声明
Object对象 面向对象的核心思想:“找合适的对象,做适合的事情”。 合适的对象: 自己描述类,自己创建对象。 sun已经描述了好多常用的类,可以使用这些类创建对象。 API(Application Program Interface) sun定义的那么多类的终极父类是Object。Object描述的是所有类的通用属性与方法。 toString方法 toString() 返回对象的描述信息 java.lang.Object@de6ced 类名@哈希码值的十六进制形式。 直接输入一个对象的时候,会调用对象的toString方法。 练习:自定义一个Person类,打印该对象的描述信息,要求描述信息为:姓名 — 年龄 问题:调用p的toString方法时,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如父类的指定的功能不能满足要求,那么子类可以复写父类的功能函数。那么该对象再调用toString()方法时,则会调用子类复写的toString方法。 编程习惯:开发者要对自定义的类重写toString(),对对象做详细的说明 equals方法 equals() 返回的是比较的结果 如果相等返回true,否则false,比较的是对象的内存地址值。 问题:比较两个人是否是同一个人,根据两个人的名字判断。 问题:如果根据名字去作为判断两个人是否是同一个时,明显p与p1是同一个人,但是程序输入却不是同一个人。不符合我们现实生活的要求。 解决:?根据我们学的继承中的函数复写,如果父类的函数不能满足我们目前的要求,那么就可以在子类把该功能复写,达到复合我们的要求。 编程习惯:开发者要对自定义的类重写equals(),使得比较两个对象的时候比较对象的属性是否相等,而不是内存地址。 hashCode方法 hashCode() 返回该对象的哈希码值: 采用操作系统底层实现的哈希算法。 同一个对象的哈希码值是唯一的。 java规定如果两个对象equals返回true,那么这两个对象的hashCode码必须一致。 String类 String类描述的是文本字符串序列。 留言 QQ 写日志。 创建String类的对象的两种方式: 直接赋值法 new关键字法 字符串对象的比较 String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字???串对象,如果存在直接返回该字符串的内存地址值。 String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。 获取方法 int length() 获取字符串的长度 char charAt(int index) 获取特定位置的字符 (角标越界) int indexOf(String str) 获取特定字符的位置(overload) int lastIndexOf(int ch) 获取最后一个字符的位置 判断方法 boolean endsWith(String str) 是否以指定字符结束 boolean isEmpty()是否长度为0 如:“” null V1.6 Boolean contains(CharSequences) 是否包含指定序列 应用:搜索 Boolean equals(Object anObject) 是否相等 Boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等 转换方法 String(char[] value) 将字符数组转换为字符串 String(char[] value, int offset, int count) Static String valueOf(char[] data) static String valueOf(char[] data, int offset, int count) char[] toCharArray() 将字符串转换为字符数组 其他方法 String replace(char oldChar, char newChar) 替换 String[] split(String regex) 切割 String substring(int beginIndex) String substring(int beginIndex, int endIndex)截取字串 String toUpperCase() 转大写 Strin
显示全部
相似文档