常用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 集合分为两大类:
- Collection 单列集合(一个一个存)
-
List
:有序、可重复、有索引
- ArrayList
- LinkedList
-
Set
:无序、不可重复、无索引
- HashSet
- TreeSet
- 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);
}
}