javaSE基础知识第四章常用apI(String类和ArrayList类)

第四章常用apI(String类)

一.API

写java代码的帮助文档

  • 在java.lang包下的类,在使用的时候,不需要导包
  • 其他包下的类,在使用的时候,都先需要写一个导包声明(先导包);
    导包声明: import java.包名.类名;(写在代码最上方(类的外部));

二.String类

1.String类的特点;

  • java中所用的字符串自变量(如"abc")都作为此类的实例来实现的;
  • 程序中只要是双引号括起来的字符串,都可以作为String类的对象(对象可以调用方法)
  • 字符串是常量,他们的值在创建之后不能更改
  • 虽然String字符串的值不能更改,但是它们可以共享
    如:String s1 = “abc”, s2 =“abc”; //其实s1和s2指向的是一个字符串常量池中的同一个字符串

2.String字符串的比较

1.通过比较字符串(引用数据类型)是否相等,来区分直接复制与构造方法赋值的区别

  • 基本数据类型, 比较是否相等, 使用 ==
  • 引用数据类型, 比较是否相等
    • == : 比较的是地址值
    • equals() : 比较字符串中的内容是否相等
 	String s1 = "abc";
	String s2 = "abc";

	System.out.println(s1 == s2); // 比较的是地址值,也就是哈希值 //返回true
	System.out.pring(s1.equals(s2));//比较的是内容
	
	String s3 = "abc";
	String s4 = new String("abc");
	
	System.out.println(s3 == s4);//返回false
	System.out.pring(s3.equals(s4));//比较的是内容//返回true
	
	String s5 = new String("abc");
	String s6 = new String("abc");
	
	System.out.println(s5 == s6);//返回false
	System.out.pring(s5.equals(s6));//比较的是内容//返回true

总结

  • 通过直接赋值的方式创建字符串, 指向字符串常量池中的地址
  • 通过构造方法的方式创建字符串, 指向的是堆内存中的地址

2.equals方法
引用数据类型通过equals方法来比较内容是否相同;

equals方法

public boolean equals(Object anObject) : 比较两个字符串中的内容是否相同

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)
    : 比较两个字符串中的内容是否相同(不考虑大小写)

总结

  • 比较字符串内容是否相同的时候, 千万不要使用==, 一定要使用equals()方法

3.String类的常用方法

(1)length
	public int length() : 返回此字符串的长度.

(2) concat
	public String concat(String str) : 字符串的拼接, 返回拼接之后的结果

	 concat: 只能拼接字符串(String)类型
	 `+`: 可以拼接任意类型(建议使用)

(3) charAt
	public char charAt(int index) : 返回指定索引处的字符
	String字符串是有索引的, [第一个字符的索引为0 , 第二个字符的索引为1 ... ]

(4) indexOf
	public int indexOf(String str) : 
		返回指定子字符串在此字符串中第一次出现处的索引, 如果没有出现就返回-1
        // s1.indexOf(s2)
    // 指定子字符串 -> s2
    // 此字符串  ->  s1
    // 在s1中, 找s2第一次出现的索引
(5) substring
	public String substring(int beginIndex) // beginIndex: 开始索引
    	 截取字符串的一部分, 从beginIndex开始一直到结尾
    
	public String substring(int beginIndex,// beginIndex: 开始索引
                        int endIndex)  // endIndex : 结束索引
         截取字符串中的一部分,beginIndex(包含)开始, 截取到endIndex(不包含)结束,包头不包尾

键盘录入方法的扩展
	键盘录入字符串
  public String nextLine() : 获取键盘录入的一行内容, 以字符串的形式返回


4. StringBuilder 和StringBuffer

StringBuffer:
用法同StringBuilder , 此类设计用作简易替换为StringBuilder在正在使用由多线程字符串缓冲区的地方

StringBuilder:

  • 字符串缓冲区;

  • 支持可变的字符串;

  • String: 是一个不可变的字符序列

  • StringBuilder: 是一个可变的字符序列

String字符串的拼接经历如下的几个步骤

  • 创建StringBuilder
  • 通过append()方法完成拼接
  • 通过toString()方法转换成字符串

stringBuilder:就是字符串缓冲区
用于存储数据的荣区
特点:
1.长度是可变的
2.可以存储不同类型数据
3.最终要转成字符串使用
4.可以对字符串进行修改

1. StringBuilder的构造方法
- 无参构造
	public StringBuilder() : 创建了一个不带任何字符的字符串缓冲区,  ""

- 有参构造
	public StringBuilder(String str) : 创建了一个字符串缓冲区, 
			字符串缓冲区中的内容和参数中的字符串是一样的.
2. StringBuilder的常用方法
 (1) append
	public StringBuilder append(String str) : 
		将参数中的内容, 进行拼接, 返回StringBuilder本身
		拼接: 就是在本身的基础上进行拼接

 (2) reverse
	public StringBuilder reverse() : 
		反转该字符串缓冲区, 返回本身(反转之后)

 (3) toString

	public String toString() : 
		将字符串缓冲区StringBuilder中的内容, 转换成字符串并返回

String转换成StringBuilder

// StringBuilder sb = "abc"; // StringBuilder不允许这种操作
// public StringBuilder(String s)
String s = "Hello";
StringBuilder sb = new StringBuilder(s);

ArrayList集合

ArrayList集合的概述【理解】

ArrayList是Java给我们提供的一个类, 类中一定会有方法.

1. 集合和数组的特点

数组是一个容器可以存放一种数据类型存放的元素既可以是基本数据类型
又可以是引用数据类型
长度固定
集合是一个容器可以存放多种数据类型
(但是使用的时候还是存放一种)
只能存放引用数据类型长度可变

2. ArrayList集合的使用

查看API

  • 在java.util 包下, 所以使用前需要先导包
  • ArrayList<E>: E代表一种引用数据类型, 叫做泛型; 作用是用来限定集合中元素的数据类型
    • ArrayList<String> , 那么这个集合中只能存放String类型
  • ArrayList是由大小可变数组的实现
    • 创建ArrayList集合的时候, 底层会创建一个长度为0的数组
    • 当我们存放元素的时候, 重新创建一个长度为10的数组
    • 如果添加的元素超过10, 再创建一个长度1.5倍的新数组, 将原数组中的内容拷贝到新数组中, 再添加新元素

构造方法

ArrayList() : 创建ArrayList集合
        // 类名 对象名  =  new  类名();

        // 创建了一个用来存放String类型元素的ArrayList集合
        ArrayList<String> list = new ArrayList<String>(); // 前后的泛型必须一致

        // jdk1.7 出了一个特性(菱形泛型)
        ArrayList<String> list2 = new ArrayList<>(); // 后面的泛型可以不写, 只写<> , 默认和前面一样

3. ArrayList集合的常用方法

	
	增加
	// E, 就是创建集合的时候泛型中定义的引用数据类型
	public boolean add(E e) : 将指定元素添加到集合中(末尾), 并返回是否添加成功
	
	public void add(int index,E element)// (索引 ,元素)
	    将指定元素添加到指定索引位置.(插入)
	    
	删除
	public E remove(int index) : 删除指定索引位置的元素, 返回被删除的元素
	    
	public boolean remove(Object o) : 删除指定元素, 返回是否删除成功

	修改
	public E set(int index,E element)// (索引 ,元素)
	     修改指定索引位置的元素, 返回被修改的元素
	
	查询
	public E get(int index) : 获取指定索引位置的元素
	    
	public int size() : 返回集合的长度(集合中元素的个数)

	int indexOf(Object o) 
	返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。 
	
	数组的长度:  arr.length
	
	字符串的长度: s.length()
	
	集合的长度: list.size()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值