黑马程序员--- 字符串的重要性, String类的定义方法, StringBuffer类的构造方法

来源:互联网 发布:双色球关注倾向数据 编辑:程序博客网 时间:2024/06/06 00:30

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1.      字符串的重要性

   字符串程序中就是一个"",表示了大多数现实生活中的数据形式

   电商:订单(单号,下单时间,收货人,地址,发票抬头,电话,商品的名字)

   商品:库存,介绍,使用方法....

   ""字符串是所有的系统中必须局部的一种数据类型。对于字符串的处理,表现出一个程序人员的基本功

   要求做到:基础结束的时候,做到,使用字符串,不需要查询API文档

 

2.      字符串的特殊对象

  对于字符串这个对象,Java使用类进行描述,String类。在程序中只要你写上一个双引号,表示一个对象 String name = "lisi" new Person.... 

 System.out.println("hello world");  ""

  特点一:不需要new 的对象,直接写双引号,就表示一个字符串对象

  特点二:字符串是常量,一旦创建,不能改变

 

3.      String类的定义方法

  第一种 String s= "abc";

  第二种 String s1= new String("abc"); //创建字符串,使用的是String类的构造器

 

  区别,第一种创建一个对象s直接指向对象"abc"

        第二种创建两个对象,对象"abc",对象 newString() 变量s1指向的是new String()

  s == s1  结果是false 指向不同的对象

  s.equals(s1)结果是true,String类重写equals比较字符串的具体内容,不是地址

 

4.      字符串String类的原理

 看看String类的原始代码:底层实现是什么:字符串底层就是一个字符数组 char[]

 "abcd"  4个长度的char数组 被final锁定

 输出字符串的时候,其实输出的就是那个字符数组,但是输出语句println对字符串数组直接遍历,看到的是每个字符,不是地址

 

5.      String类的构造方法

l  空参数构造, newString()

l  将字节数组变成字符串new String(字节数组 byte[] bytes),查询编码表,必须查

l  将字节数组一部分变成字符串new String(字节数组,int,int)第一个int是开始下标,第二个int是获取几个,注意的数组的长度,防止越界异常

l  将字符数组转成字符串new String(字符数组 char[] ch)

l  将字符数组一部分转成字符串new String(字符数组,int,int) 一个int是开始下标,第二个int是获取几个,注意的数组的长度,防止越界异常

 

6.      String的判断方法 -- 都是布尔类型

l  判断两个字符串是否完全相等,重写Object类的equals,两个字符串完全相等,返回真,有一点不同,返回假  public boolean equals(Objectobj)

l  判断两个字符串是否相等,忽略大小写,boolean equalsIgnoreCase(String s)

l  判断一个字符串是否以另一个字符串开头,如果是返回真 boolean startsWith(String s)

l  判断一个字符串是否以另一个字符串结尾,如果是返回真 boolean endsWith(String s)

l  判断一个字符中是否有字符,如果有返回假,没有字符返回真,判断是不是一个空串""  booleanisEmpty() 开始于JDK1.6(包含)以后版本

 

7.      String类的获取方法

l  指定下标,返回这个下标上的单个字符   char  charAt(int index)传递索引,返回这个索引上字符,注意越界异常

l  指定字符,找这个字符在字符串中第一次出现的下标  int indexOf(char ch),凡是返回下标的功能,如果没有找到,返回负数

l  指定字符,找这个字符在字符串中第一次出现的下标  int indexOf(char ch,intformIndex),指定开始查找的位置索引

l  指定字符串,找字符串在另一个字符串中第一次出现的下标 int indexOf(String s)。

l  指定字符串,找字符串在另一个字符串中第一次出现的下标 int indexOf(String s,int fromIndex),指定开始查找的位置

l  指定字符,找这个字符在字符串最后一次出现的下标,int lastIndexOf(char ch)反向索引,如果没找到,返回负数

l  指定字符,找这个字符在字符串最后一次出现的下标,int lastIndexOf(char ch,int fromIndex),指定开始查找的位置

l  自己实现。int lastIndexOf(Strings)  int lastIndexOf(String s,intformIndex)

l  获取字符串中的字符个数int length() 返回字符个数  length属性,数组的长度。length()方法,表示字符串中的字符个数。

l  获取(截取)字符串的一部分 Stringsubstring(int start, int end)返回新的字符串,原始不变,包含头,不包含尾

l  获取字符串的一部分String substring(int start)返回新的字符串,从开始下标计算,后面的全要

 

8.      String类的转换方法

l  将字符串转成字节数组,返回字节数组byte[]  getBytes(),查询编码表

l  将字符串转成字符数组,返回字符数组 char[] toCharArray(),不查询编码表

l  将字符串全部转成大写字符,返回新字符串 String toUpperCase()

l  将字符串全部转成小写字符,返回新字符串 String toLowerCase()

l  字符串的追加方法 返回新字符串concat(String s)

 

9.      String类的其他方法

l  一个字符串是否包含另一个字符串 boolean contains(String s)完全包含返回真

l  将其他数组类型转成字符串 staticString valueOf(任意类型)

l  切割字符串 String[]split("切割规则"),返回新的字符串数组.如果规则不满足,原始字符串直接装进新的数组的0下标。安装"点" .正则中匹配任意字符,点变成普通的一个符号.

l  替换字符串,返回新的字符串String replace(老char,新char)

l  替换字符串,返回新的字符串String replace(老串,新串)

l  安照字典顺序比较两个字符串int compareTo(String s),比较有三种结果,我比你小,我和你一样,我比你大。调用者小于参数 结果是负数,调用者等于参数,结果是0,调用者大于参数,结果是正数。字典顺序,称为自然顺序

l  去掉字符串的两端空格 ,返回新字符串String trim(),如果字符串中间有空格,不去除

 

10.  StringBuffer类的由来

  看代码,分析产生了几个对象

  String s ="ab"+"cd"+"ef"+"gh";

  sop(s)"abcdefgh";

  String类固定不变,上面代码,生成5个对象,很浪费内存,运行速度越慢

  Java开发出了StringBuffer降低资源的浪费,速度的提升。是一个字符串的缓冲区,为了提高效率

  可变字符序列

 

11.  StringBuffer类概述

  字符串的缓冲区,提高String的操作效率,底层数据结构可变数组(字符),数组是定长,StringBuffer自己会做数组的扩容,删除原数组

 

12.  StringBuffer类的构造方法

l  空参数,默认创建16个位置的数组

l  带有String参数的,直接把字符串,装进缓冲区

 

13.  StringBuffer类的常见方法

l  将数据追加到缓冲区  append(任意类型) 出来的结果都是字符串,方法的返回值是StringBuffer,返回本类对象。新的概念,链式编程,对象调用方法,方法的返回值还是一个对象

l  删除缓冲区中的字符串,StringBufferdelete(int start,int end),包含头,不包含尾

 

0 0