API文档1.String字符串
1.1字符串定义的三种方式1.2字符串的特点1.3字符串比较
案例:登录系统 1.4字符串遍历
字符串反转 2.StringBuilder
2.1概述2.2构造方法,添加反转等
2.2.1构造方法2.2.2添加和反转 2.3StringBuilder和String的互相转换 三、集合基础
1.集合
1.1概念1.2ArrayList构造方法和添加方法1.3ArrayList集合常用的方法 案例:学生管理系统
API文档API学习文档,java学习的字典。
(在线API)
- Scanner String的特殊
Scanner sc = new Scanner(System.in);
System.out.print("input a string:");
String line = sc.nextLine();
ctrl+alt+v 自动生成string line
1.String字符串 1.1字符串定义的三种方式三种方式:char[] , byte[] , “…”
char[] arr = {'w','e','n'};
String s1 = new String(arr);
System.out.println(s1);//wen
byte[] arr = {65,66,67};
String s1 = new String(arr);
System.out.println(s1);//ABC
String s1 = "wentiansheng";
System.out.println(s1);//wentiansheng
1.2字符串的特点
地址不同
char[] arr = {'a','b','c'};
String s1 = new String(arr);
String s2 = new String(arr);
上图代码,内容相同,但是new出的s1,s2地址不同
用string = “…”方式定义的字符串
String s3 = "wen"; String s4 = "wen";
针对第一行代码,JVM会建立一个String对象放在字符串池中,并且给s3
参考,而s4也是参考的这个池子, 说明本质上是同一个对象。
用==比较的含义
基本类型:比较的是数值值是否相同引用类型:比较的是地址值是否相同
而字符串是对象,比较的是内容是否相同,用方法来实现:equals()
System.out.println(s1.equals(s2));//true案例:登录系统
package wts;
import java.util.Scanner;
public class helloworld {
public static void main(String[] args) {
String usrname = "wentiansheng";
String password = "123456";
Scanner sc = new Scanner(System.in);
int i;
for (i = 0; i < 3; i++) {
//循环输入
System.out.print("输入用户名:");
String s1 = sc.nextLine();
System.out.print("输入密码:");
String s2 = sc.nextLine();
//判断
if (usrname.equals(s1) && password.equals(s2)) {
System.out.println("登录成功!");
break;
} else {
System.out.println("登录失败," + "你还有" + (2 - i) + "次机会!");
}
}
}
}
1.4字符串遍历
.length()和.charAt(i)
长度和检索字符
Scanner sc = new Scanner(System.in);
System.out.print("输入字符串:");
String s1 = sc.nextLine();
int i;
for (i = 0; i < s1.length(); i++) {
System.out.println(s1.charAt(i));
}
//abcd
//a
//b
//c
//d
字符串反转
package wts;
import java.util.Scanner;
public class helloworld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入字符串:");
String s = sc.nextLine();
String ss = reverse(s);
System.out.println(ss);
}
//返回值方法
public static String reverse(String s) {
String ss = "";//空字符串放倒叙
for (int i = s.length() - 1; i >= 0; i--) {
ss += s.charAt(i);//字符串也可以加
}
return ss;
}
}
2.StringBuilder
2.1概述
string s1 = "hello"; s1 += "world";//最终输出helloworld
每次拼接,浪费空间。
StringBuilder 是一种可变的字符串类,可以看作容器(里面的对象可变)String内容不可变 2.2构造方法,添加反转等 2.2.1构造方法
public StringBuilder() 创建一个空白的可变字符串对象,不含内容public StringBuilder(String str) 根据字符串内容,创建可变字符串对象 2.2.2添加和反转
public StringBuilder() append(任意类型) 添加数据,返回本身
public StringBuilder() reserve() 返回相反的字符串序列
package wts;
import java.util.Scanner;
public class helloworld {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
StringBuilder s1 = sc.append("hello");
s1 = sc.append(" world");
System.out.println(s1);//hello world
s1 = sc.append(" !").append(" wen").append(" tian").append(" sheng");
System.out.println(s1);//hello world ! wen tian sheng
//反转
s1.reverse();
System.out.println(s1);//gnehs nait new ! dlrow olleh
}
}
2.3StringBuilder和String的互相转换
.toString()
StringBuilder sc = new StringBuilder();
sc.append("wentiansheng ");
String s = sc.toString();
System.out.println(s);//wentiansheng
StringBuilder构造转换
作用:有个案例,字符串拼接的案例,string耗费空间,很浪费;用stringbuilder提升效率。
String s = "hello";
StringBuilder sc = new StringBuilder(s);
System.out.println(sc);
案例
package wts;
import java.util.Scanner;
public class helloworld {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//输入 123456
System.out.print("input:");
String s = sc.nextLine();
//调用方法
s = myreserve(s);
//输出 654321
System.out.println(s);
}
public static String myreserve(String s) {
return new StringBuilder(s).reverse().toString();
}
}
三、集合基础
1.集合
1.1概念
ArrayList
可调整大小的数组实现是一种特殊的数据类型,泛式
运用范例 ArrayList
public ArrayList() 创建空的集合对象
ArrayListarray = new ArrayList<>(); //添加空集合 System.out.println("array:" + array);//array:[]
public boolean add(E e) 将指定元素增加到集合末尾
//末尾添加
array.add("wen");
array.add("tian");
array.add("sheng");
System.out.println("array:" + array);//array:[wen, tian, sheng]
public void add(int index,E element) 指定位置插入指定元素(也存在越界报错!)
//指定位置添加
array.add(1, "666");
System.out.println("array:" + array);//array:[wen, 666, tian, sheng]
1.3ArrayList集合常用的方法
public boolean remove(objec o)删除指定元素,返回删除是否成功
package wts;
import java.util.ArrayList;
public class helloworld {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
array.add("wen");
array.add("tian");
array.add("sheng");
//删除指定的元素,返回是否成功
boolean flag = array.remove("wen");
System.out.println(flag);//true
System.out.println("array:" + array);//array:[tian, sheng]
}
}
public E remove(int index)删除指定索引的元素,返回被删除的元素
package wts;
import java.util.ArrayList;
public class helloworld {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
array.add("wen");
array.add("tian");
array.add("sheng");
//删除指定的索引元素,返回元素
System.out.println(array.remove(0));
System.out.println("array:" + array);
//wen
//array:[tian, sheng]
}
}
public E set(int index,E element)修改指定索引的元素,返回被修改的元素
package wts;
import java.util.ArrayList;
public class helloworld {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
array.add("wen");
array.add("tian");
array.add("sheng");
//修改指定的索引元素,返回元素
System.out.println(array.set(0,"gogogo"));
System.out.println("array:" + array);
//wen
//array:[tian, sheng]
}
}
public E get(int index)返回指定索引的元素
package wts;
import java.util.ArrayList;
public class helloworld {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
array.add("wen");
array.add("tian");
array.add("sheng");
//返回指定索引元素
System.out.println(array.get(0));
System.out.println("array:" + array);
//wen
//array:[wen,tian, sheng]
}
}
public int size()返回集合元素个数
package wts;
import java.util.ArrayList;
public class helloworld {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
array.add("wen");
array.add("tian");
array.add("sheng");
//返回指定索引元素
System.out.println(array.size());
System.out.println("array:" + array);
//3
//array:[tian, sheng]
}
}
小结:存在索引,都有越界报错
案例:学生管理系统package student;
public class Student {
//学号
private String sid;
private String name;
private String age;
private String address;
public Student() {
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
public String getAddress() {
return address;
}
public void setSid(String sid) {
this.sid = sid;
}
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
}
package student;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo {
//菜单
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
while (true) {
//创建集合,储存学生信息
//界面
System.out.println("********欢迎来到学生管理系统********");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看学生");
System.out.println("5 退出");
//键盘录入菜单
Scanner sc = new Scanner(System.in);
System.out.print("输入(1-5):");
String choice = sc.nextLine();
//switch分支
switch (choice) {
case "1":
//System.out.println("添加学生");
addStudent(array);
break;
case "2":
//System.out.println("删除学生");
deleteStudent(array);
break;
case "3":
//System.out.println("修改学生");
updateStudent(array);
break;
case "4":
//System.out.println("查看学生");
findAllStudent(array);
break;
case "5":
System.out.println("学习使用");
//break;
System.exit(0);//JVM(java虚拟机退出!)
default:
System.out.println("输入数据有误!重新输入");
break;
}
}
}
//1 添加学生
public static void addStudent(ArrayList array) {
//提示,录入信息
Scanner sc = new Scanner(System.in);
System.out.print("学生学号:");
String sid = sc.nextLine();
System.out.print("学生姓名:");
String name = sc.nextLine();
System.out.print("学生年龄:");
String age = sc.nextLine();
System.out.print("学生住址:");
String address = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//把学生类添加到集合中去
array.add(s);
//提示添加成功
System.out.println("添加成功!");
}
//2 删除学生
public static void deleteStudent(ArrayList array) {
//键盘录入要删除的学生学号
Scanner sc = new Scanner(System.in);
System.out.println("输入要删除学生的学号:");
String sid = sc.nextLine();
int index = -1;
//遍历集合,删除目标
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
array.remove(i);
index = i;
break;
}
}
if (index == -1) {
System.out.println("找不到信息!重新输入!");
} else {
System.out.println("删除成功!");
}
}
//3 修改学生
public static void updateStudent(ArrayList array) {
//键盘录入要修改学生的学号
Scanner sc = new Scanner(System.in);
System.out.print("输入要修改的学生学号:");
String sid = sc.nextLine();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
index = i;
//键盘输入修改的内容
System.out.print("输入要修改学号:");
String num = sc.nextLine();
System.out.print("输入要修改姓名:");
String name = sc.nextLine();
System.out.print("输入要修改年龄:");
String age = sc.nextLine();
System.out.print("输入要修改地址:");
String address = sc.nextLine();
//创建学生对象
Student stu = new Student();
stu.setSid(num);
stu.setName(name);
stu.setAge(age);
stu.setAddress(address);
//修改集合
array.set(i, stu);
break;
}
}
if (index == -1) {
System.out.println("找不到学生信息!重新输入!");
} else {
System.out.println("修改成功!!");
}
}
//4 查看学生
public static void findAllStudent(ArrayList array) {
//判断初始是否有信息
if (array.size() == 0) {
System.out.println("没有信息!请先添加学生!");
} else {
//显示表头
System.out.println("学号tt姓名tt年龄tt住址t");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getSid() + "tt" + s.getName() + "tt" + s.getAge() + "tt" + s.getAddress());
}
}
}
}
关于学生信息管理系统小结:
- 创建Student类的时候,写好private后,快捷键alt + insert 直接出构造函数等集合元素是类



