黑马程序员__Java中Object类,String类

来源:互联网 发布:智能变送器掌上编程器 编辑:程序博客网 时间:2024/06/03 09:00



  ------- android培训java培训、期待与您交流! ---------- 

Object类 

equals方法

  比较的方法,比较对象,Java认为所有的对象都具备比较性

  指示其他某个对象是否与此对象“相等”。

  基本类型,123比较具体的数值

  对象中,equals方法比较是对象的地址

  Object类中的equals方法的源代码

  public boolean equals(Object obj){

      return this == obj;

  }

  覆盖equals方法,目的何在

  建立自己的比较方式,比较的是类中成员变量的值

  问 equals 方法 和 运算符== 的区别是什么

  == 运算符,比较基本类型,比较引用类型

     基本类型中,比较的是具体的数值

     引用类型,比较(真实的)地址

  equals方法

    原始状态中,equals方法比较对象的地址

    可以覆盖方法,建立对象自己的比较方式

2. 字符串重要性

  大多数数据,是以字符串形式存在的

  人的一些信息,邮箱,电话,地址,爱好,兴趣,学历,婚事

  开发中,字符串的处理非常重要


String类概述

  字符串这类事物,被看成是一个对象,字符串对象

  就有描述这个对象类,java.lang.String类

  是被final修饰的类,不能去继承String类

  String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

  java中,写上 "" 就是String类的对象实例

  常量,字符串常量,一旦创建了,就不能在修改了

      str是一个String类类型变量,类类型变量,一定指向对象

       String str = "abc";


4. 字符串的定义方法

  第一种 String str = "abc";

  第二种 String str = new String("abc");


5. String的底层原理

  其实你看的是一个字符串

  但是String的底层原理,并不是字符串,是字符数组

  "abc"其实,是一个字符数组 char类型

  看String类的源代码

    private final char value[];


6. String类中的常用方法

  6.1 String类的构造方法

    空参数构造方法 new String()

    有一个字节数组的参数的构造方法


    String(byte[] bytes) 将一个字节数组转成字符串

    带有一个字节数组,还带有下标


    String(byte[]bytes ,int start  ,int length)将字节数组转成字符串,但是按照写下标来转换

    第一个int是开始下标,第二个int是个数

    常用的ASCII码值  a 97 z 122   A65 Z 90  0 48 9 57 enter 13 

    带有一个字节数组,带有字符编码集的构造方法

    String(byte[] bytes, Charset charset) 


    带有一个字符数组的构造方法

    String(char[] ch)将字符数组转成字符串对象


    带有一个字符数组的构造方法,带有下标参数

    String(char[],int start,int length)将字符数组的一部分转成字符串


    关于String构造方法的案例

      功能,执行一个字符数组

      将数组变成字符串,不能使用String类构造方法

      实现步骤:

         遍历数组

每一个字符做字符串的+=操作


  6.2 String类的判断方法

     很重要,很常用 equals

     判断两个字符串是否完全一致,如果一致返回真,否则返回假

     public boolean equals(Object obj){}

     继承Object,覆盖的equals建立了字符串自己的比较方式,不比较地址

     比较的是实际的字符串的内容


     equalsIgnoreCase 判断两个字符串是否完全一致,忽略大小写

     public boolean equalsIgnoreCase(String s)

     用户验证码,不区分发小写


     startsWith(String s)判断一个字符串是否以另一个字符串开头

     返回值也是boolean


     endsWith(String s)判断一个字符串是否以另一个字符串结尾


     isEmpty()判断字符串是不是空串,如果没有字符,返回真,有字符返回假

     开始版本JDK1.6开始

     判断一个字符串是否包含另一个字符串

     boolean contains(CharSequence s),如果完全包含返回true


  6.3 String类的获取方法


    int length()方法 获取到一个字符串中的字符个数

    int length 属性,数组的长度

    

    char charAt(int index)获取到指定位置上的单个字符


    int  indexOf(char ch)获取指定字符,在字符串中第一次出现的位置

    根据字符找索引,第一次出现的索引

    特点,凡是找索引,到不到的,返回值 < 0


    int indexOf(char ch,int fromindex)获取到指定位置上的单个字符

    第二个参数int,指定开始查找的位置


    int indexOf(String str)查找一个字符串,在另一个字符串中第一次出现的索引

    必须完全匹配


    int indexOf(String str,int fromindex)查找一个字符串,在另一个字符串中第一次出现的索引

    必须完全匹配,指定开始位置


    int lastIndexOf(char ch)查找指定字符,在字符串中最后一次出现的位置

    反向索引


    int lastIndexOf(char ch,int formindex)查找指定字符,在字符串中最后一次出现的位置

    指定位置开始查找


     int lastIndexOf(String str)

     int lastIndexOf(String str,int formindex)


   获取字符串中的一部分substring(int start,int end)从一个字符串中,截取出来另一个字符串

   方法,返回一个新的字符串,老字符串,不变

   包含头,不包含尾


  6.4 String类的转换方法

    字符串转成字节数组,和一个构造方法,相反操作

    byte[] getBytes()

    转字节数组,查询编码表,字符,汉字等等,还原会编码表中的十进制数


    字符串转成字符数组

    char[] toCharArray()


    以上两个方法,和构造方法,都是相反操作


    将字符串转成小写字母 toLowerCase()

    将字符串转成大写字母 toUpperCase()


    还有一个转换方法,很搞笑,是静态的

   类名直接调用,static String valueOf(随便写)将任意类型的数据转成字符串


  6.5 String类其他方法

    切割字符串  String[] split(String s)

    "192.168.1.100";切割IP地址 对于程序来讲没有用

    但是对于商业经营来讲,很重要

    欢迎你来自北京市昌平区联通的用户  IP地址数据库

    北京市昌平434343-23432


    替换字符串 String replace(老字符,新字符)

    String replace(老字符串,新字符串)

    没有替换成功,replace将会直接返回原始字符串

    开灯,背景色变成白色,关灯背景色黑色

    当你第一次打开页面,默认值就是白色

    replace(白色,黑色)


    String trim()方法用于去掉字符串两端的空格

    返回新的字符串

    一般用于输入用户名的时候,先去空格




    字符串按照字典顺序比较abcde

    int compareTo(String)

    

7. 字符串的案例

   String的方法,配合使用

   自己实现String类的equals方法

   "asda" 

   "fds"

   一个一个的比,将每一个字符单独提出来比较,必须数组完成

   字符串怎么转成数组 toCharArray()

   遍历数组

     每个每个比较

       只要你发现有一个不一样,程序就结束了,结果false

   自己实现 toCharArray()

     转成数组,定义一个数组

      char[] ch = new char[s.length()]

      遍历数组

      获取数组的每一个索引,将每一个字符存储到数组中

      ch[x] = s.charAt(x);


   大小写的相互转化 abcEdweGEde

    先转字符数组

    遍历数组,获取每一个字符

    ch[x] 97 - 122 65 -90

    将字符-32 存储回数组

    将字符+32 存储回数组

   判断一个字符串是否是回文数

   12321  1221  读法一致,前2个不能一致

   转数组,判断最远端相等即可,并且前两个不同


  ------- android培训java培训、期待与您交流! ----------
0 0
原创粉丝点击