Day08

3 阅读3分钟

常用API

String类的特点

1.Java程序中的所有字符串文字(例如"abc")都是String类的对象

String除了通过构造方法new对象以外,多了一种创建对象的方式

2.String是不可改变的,它们的值在创建后无法更改

想要更改,需要使用新的对象进行替换

3.String虽然不可改变,但是可以被共享

public static void main(String[] args) {
    String s1 = "abc";
    String s2 = "abc";
    String s3 = "ab";
    String s4 = s3 +"c"
    String s5 = "a" + "b" + "c"    

    System.out.println(s1 == s2);     // true, 这里没有比较内容, 比较的是地址值
    Systemo.out.println(s1 == s4);    // false
     System.out.println(s1 == s5);    // true
}

4.String类用于比较的方法

package com.itheima.string;

public class StringMethodDemo1 {
    /*
        String类用于比较的方法
        
        public boolean equals方法(要比较的字符串)             完全一样结果才是true, 否则为false
        public boolean equalsIgnoreCase(要比较的字符串)       忽略大小写的比较
     */
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = new String("abc");

        System.out.println(s1 == s2);       // false
        System.out.println(s1.equals(s2));  // true

        String s3 = "ABC";
        System.out.println(s1.equals(s3));  // false
        System.out.println(s1.equalsIgnoreCase(s3));    // true
    }
}

StringBuilder介绍

StringBuilder 可以提高字符串的操作效率

StringBuilder的构造方法

// 创建一个空白的字符串缓冲区
StringBuilder sb1 = new StringBuilder();
System.out.println(sb1);

// 创建一个字符串缓冲区, 并指定初始值.
StringBuilder sb2 = new StringBuilder("abc");
System.out.println(sb2);

成员方法

       StringBuilder sb1 = new StringBuilder("abc");
        //添加数据
        sb1.append("aaa");
        System.out.println(sb1);
        //反转内容
        sb1.reverse();
        System.out.println(sb1);
        //变回字符串
        String s = sb1.toString();
        System.out.println(sb1);
        //获取长度
        int b = sb1.length();
        System.out.println(b);
    }

案例:回文字符串

package com.itheima.test;

import java.util.Scanner;

public class StringBuilderTest1 {
    /*
        需求:键盘接受一个字符串,程序判断出该字符串是否是回文字符串,并在控制台打印是或不是
        回文字符串:123321、111
        非回文字符串:123123

        思路: 对接收到的字符串反转, 如果反转后的字符串, 和原字符串相同, 就是回文字符串

        String --- StringBuilder 的转换.
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入: ");
        String content = sc.next();

        // 将String转换为StringBuilder调用内部的反转方法.
        StringBuilder sb = new StringBuilder(content);
        sb.reverse();

        // 判断是否是回文字符串
        // content: String类型
        // sb: StringBuilder类型
        if (content.equals(sb.toString())) {
            System.out.println("是");
        } else {
            System.out.println("不是");
        }
    }
}

集合介绍

一、集合是什么?

Java 集合就是一个容器,用来存放多个对象

和数组类似,但比数组更强大:

数组: 存储的元素个数固定不变

集合: 存储的元素个数经常发生改变

  • 长度可以自动变化
  • 提供很多好用的方法:add、remove、contains、clear 等

二、集合体系结构(最重要)

Java 集合分为两大类:

  1. Collection 单列集合(一个一个存)
  • List

    :有序、可重复、有索引

    • ArrayList
    • LinkedList
  • Set

    :无序、不可重复、无索引

    • HashSet
    • TreeSet
  1. Map 双列集合(一对一对存:key-value)
  • HashMap
  • TreeMap

集合增删改查的方法

package com.itheima.arraylist;

import java.util.ArrayList;

public class ArrayListDemo2 {
    /*
        ArrayList常用成员方法:

        1. 增
                boolean add(E e): 将指定的元素追加到此列表的末尾
                void add(int index, E element): 将指定元素插入此列表中的指定位置
        2. 删
                E remove(int index): 删除此列表中指定位置的元素
                boolean remove(Object o): 从该列表中删除指定元素的第一个匹配项(如果存在)
        3. 改
                E set(int index, E element): 用指定的元素替换此列表中指定位置的元素
        4. 查
                E get(int index): 返回此列表中指定位置的元素
                int size(): 返回此列表中的元素数
     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三");
        list.add("李四");
        list.add("王五");

        String s = list.get(2);
        System.out.println(s);

        System.out.println(list.size());

    }

    private static void updateMethod() {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三");
        list.add("李四");
        list.add("王五");

        list.set(1, "赵四");

        System.out.println(list);
    }

    private static void deleteMethod() {
        ArrayList<String> list = new ArrayList<>();

        list.add("李四");
        list.add("张三");
        list.add("李四");
        list.add("王五");

        boolean result = list.remove("李四2");

        System.out.println(result);

        System.out.println(list);
    }

    private static void addMethod() {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三");
        list.add("张三");
        list.add("张三");

        list.add(0, "李四");

        System.out.println(list);
    }
}