文章目录
常用API(String ,ArrayList)
String
构造器 | 说明 |
---|---|
public String() | 创建一个空白字符串对象,不含有任何内容 |
public String(String original) | 根据传入的字符串内容,来创建字符串对象 |
public String(char[ ] chs) | 根据字符数组的内容,来创建字符串对象 |
public String(byte[ ] chs) | 根据字节数组的内容模糊,来创建字符串对对象 |
使用构造器和直接用“”创建字符串有区别吗
-
存储地址不同,直接用“”创建是在字符串常量池中,使用构造器创建的存储在堆内存中。(new出来的都在堆内存中)
字符串被创建后不可更改
字符串内容的比较
- 只比较内容equals()
- 比较地址用“==”
- 忽略大小写的内容比较equalsIgnoreCase()
演示
package StringDome;
public class Tast1 {
public static void main(String[] args) {
String name = "改革春风吹满地";
System.out.println("字符长度为:"+name.length());
System.out.println("第一个字符为:"+name.charAt(0));
//遍历字符串
for (int i = 0; i < name.length(); i++) {
System.out.print(name.charAt(i)+"\t");
}
System.out.println();
char[] nameArr = name.toCharArray();
// 转为字符数组
for (char c : nameArr) {
System.out.print(c + "\t");
}
System.out.println();
//截取字符串(包前不包后,取到0-4)
System.out.println(name.substring(0,5));
//从第5位到末尾
System.out.println(name.substring(5));
//关键词替换
System.out.println(name.replace("改革","**"));
//判断是否包含
System.out.println(name.contains("春风"));
System.out.println(name.contains("春小风"));
//判断字符串以什么字符开头
System.out.println(name.startsWith("改革"));
System.out.println(name.startsWith("春风"));
//按特定字符分割字符串,返回字符串数组
System.out.println(name.split("风"));
String[] nameStringSrray = name.split("风");
for (String s : nameStringSrray) {
System.out.print(s+"\t");
}
}
}
String案例
模拟登陆
package StringDome;
import java.util.Scanner;
public class caseDome1 {
public static void main(String[] args) {
String okLonginName = "17633922136";
String okLonginPassword = "xiebb.2580";
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.print("请输入您的登录账号:");
String longinName = sc.next();
System.out.print("请输入您的登录密码:");
String longinPassword = sc.next();
boolean flag =true;
if (longinName.equals(okLonginName)) {
if (longinPassword.equals(okLonginPassword)){
System.out.print("登陆成功");
flag = false;
break;
}else {
System.out.println("登陆失败:您的密码错误,您还有"+(4-i)+"次机会");
}
}else {
System.out.println("登陆失败:您的账号错误,您还有"+(4-i)+"次机会");
}
if (flag){
System.out.println("找回密码点这里");
}
}
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6njEKJzR-1658466243184)(C:\Users\谢兵兵\AppData\Roaming\Typora\typora-user-images\image-20220630222811409.png)]
ArrayList集合
集合的特点
- 集合的大小不固定,启动后可以动态变化,类型可以选择不固定。.
- 集合非常适合做元素个数不确定,且进行增删操作的业务场景。
- 集合提供了很多好用的功能,而数组功能单一。
ArrayList入门
package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
//创建ArrayList对象
ArrayList list1 = new ArrayList();
//添加元素
list1.add("java");
list1.add("Mysql");
list1.add(0.5);
list1.add(true);
System.out.println(list1);
//指定位置插入元素
list1.add(1,"python");
System.out.println(list1);
}
}
泛型概述
- ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。
- 举例
- ArrayList此集合只能操作字符串类型的数据;
- ArrayList此集合只能操作int类型的数据;
- 注意:ArrayList只能储存引用数据类型,不支持基本数据类型。
package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
//创建ArrayList对象
ArrayList<String> list1 = new ArrayList<String>();
//添加元素
list1.add("java");
list1.add("Mysql");
System.out.println(list1);
//指定位置插入元素
list1.add(1,"python");
System.out.println(list1);
}
}
ArrayList常用API
package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
//创建ArrayList对象
ArrayList<String> list1 = new ArrayList<String>();
//添加元素
list1.add("java");
list1.add("Mysql");
//指定位置插入元素
list1.add(1,"python");
//获取指定位置元素
System.out.println(list1.get(1));
//获取集合的大小
System.out.println(list1.size());
//集合的遍历
for (int i = 0; i < list1.size(); i++) {
System.out.println(list1.get(i));
}
//删除元素(按索引)
String e = list1.remove(1);
System.out.println(list1);
System.out.println(e);
//删除元素(按元素)只删除找到的第一个元素
System.out.println(list1.remove("java"));;
System.out.println(list1);
//修改某个位置的元素(返回修改前的值)
String e2 = list1.set(0,"PHP");
System.out.println(e2);
System.out.println(list1);
}
}
案例:模仿电影信息的展示
package ArrayListDome;
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) {
ArrayList<movie> list1 = new ArrayList<movie>();
movie m1 = new movie("长津湖",9.2,"吴京");
movie m2 = new movie("肖申克的救赎",9.5,"罗宾.思");
movie m3 = new movie("长津湖",9.2,"吴京");
list1.add(m1);
list1.add(m2);
list1.add(m3);
for (int i = 0; i < list1.size(); i++) {
System.out.println((list1.get(i)).getName());
System.out.println((list1.get(i)).getActor());
System.out.println((list1.get(i)).getScore());
System.out.println("==========================");
}
}
}
案例学生信息系统的数据搜索
package ArrayListDome;
import java.util.ArrayList;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
ArrayList<student> students = new ArrayList<>();
students.add(new student("2019962009","谢兵兵",22,"统计班"));
students.add(new student("2019962006","马静丽",22,"英语班"));
students.add(new student("20199620010","潘美月",21,"统计班"));
System.out.println("学号\t\t\t\t姓名\t年龄\t专业");
for (int i = 0; i < students.size(); i++) {
student s = students.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
}
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("请输入要查询的学号:");
String input = sc.next();
getStudentByID(students,input);
}
}
/**
*通过id返回信息
* @param students
* @param id
* @return
*/
public static void getStudentByID(ArrayList<student> students,String id){
for (int i = 0; i < students.size(); i++) {
student s = students.get(i);
if (s.getId().equals(id)){
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
break;
}else {if (i == students.size()-1){
System.out.println("查无此人");
}
}
}
}
}
常用API总结
- 什么是API:全称是应用程序接口,java自己写好的,给别人调用的。可查看API文档查看
- String:使用“”号创建的字符串褚存在字符串常量池中,且只放一份是不可改变的类型。使用new创建的字符串褚存在堆内存中
- ArrayList:类似于数组,是一种容器
- 大小可变,类型不固定,功能更加强大,长度不固定,可以进行增删操作