Javaee之【字符串String】
Javaee之【字符串StringBuilder】
Javaee之【集合】
Javaee之【类(包含学生管理系统)】
字符串
在代码中遇到字符串常量时,这里的值是 "Student",编译器会使用该值创建一个 String 对象。和其它对象一样,可以使用关键字和构造方法来创建 String 对象。
用构造函数创建字符串
String str=new String("Student");
字符串的使用示例(包含构造方法以及使用方法)
import java.util.Scanner;
public class String01 {
public static void main(String[] args) {
//输入一个字符串,并输出在控制台
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
//crtl+alt+v
//------------------------------
String line = sc.nextLine();
//------------------------------
System.out.println("你输入的字符串是:"+line);
System.out.println(line.length());
String s5 = "";
//字符串的构造方法
//1.无参数构造
String s1 = new String();
System.out.println("s1:"+s1);
//2、字符数组构造
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("s2:"+s2);
//3、字节构造
byte[] bys = {97,98,99};
String s3 = new String(bys);
System.out.println("s3:"+s3);
//4、直接复制法
String s4 = "abc";
System.out.println("s4:"+s4);
}
}
字符串使用案例1:
实现用户登录
import java.util.Scanner;
//实现用户登录
public class String03 {
public static void main(String[] args) {
//用户名密码设置
String username = "itheima";
String password = "czbk";
//用户输入密码
Scanner sc = new Scanner(System.in);
//使用循环判断能否成功登录
for (int x = 1 ; x <= 3; x++ ){
System.out.println("请输入用户名:");
String user = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
//判断输入密码是否准确
if(user.equals(username) && pwd.equals(password)){
System.out.println("登陆成功!");
break;
}else {
if ((3-x)==0){
System.out.println("你的账户已被锁定,请与管理员联系!");
}else {
System.out.println("你还有"+(3-x)+"次机会");
}
}
}
}
}
字符串使用案例2:
字符串的反转
import java.util.Scanner;
// 实现字符串的反转
public class String07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//输入一个字符串
String line = sc.nextLine();
//反转并输出
String line1 = reverse(line);
System.out.println(line1);
//利用StringBuilder实现反转
StringBuilder s = new StringBuilder(line);
s.reverse();
line = s.toString();
System.out.println(line);
}
public static String reverse(String line){
//定义一个字符串的时候需要初始化
String ss ="";
for(int i = line.length()-1; i >= 0; i--){
ss += line.charAt(i);
}
return ss;
}
}
字符串StringBuilder
所谓的StringBuilder就是在字符串进行修改的时候使用的一种方法,字符串修改时转化为StringBuilder修改后再转回String,两者可以相互转化;
转化方法时
String—>StringBuilder
StringBuilder sb = new StringBuilder();//将字符串转化为StringBuileder
for (int i = 0; i < 3; i++){
String str = sc.nextLine();//从控制台输入一串字符串
sb.append(str);//添加到StringBuilder
sb.append(",");
}
String s = sb.toString();//StringBuilder转化为String
System.out.println(s);
可以理解为在对字符串进行操作时转化为StringBuilder可以更简洁
下面给出使用案例:
使用案例01:
StringBuilder的构造方法:
public class String_Builder {
public static void main(String[] args) {
//无参数构造方法
StringBuilder sb = new StringBuilder();
System.out.println(sb);
System.out.println("sb的长度是:"+sb.length());
//有参数都在方法
StringBuilder sb2 = new StringBuilder("helloworld");
System.out.println(sb2);
System.out.println("sb2的长度是:"+sb2.length());
}
}
使用案例02:
StringBuilder实现数组,字符串的反转:
public class String_Builder5 {
public static void main(String[] args) {
//实现数组转字符串,再实现字符串的反转
int[] arr = {1,2,3,4};
String s = arrReverse(arr);
System.out.println(s);
//字符串的反转
Scanner sc =new Scanner(System.in);
String ss = sc.nextLine();
//接受反转
String sss = stringReverse(ss);
System.out.println(sss);
}
//2、字符串的反转
/*
* 返回值类型:String
* 参数:String ss
* */
public static String stringReverse(String ss){
StringBuilder s = new StringBuilder(ss);
String s1 = s.reverse().toString();
System.out.println(s1);
return s1;
}
//数组转字符串的反转
/*
* 返回值类型:String
* 参数:int[] arr*/
public static String arrReverse(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int x = arr.length-1; x >= 0; x--){
if (x == 0){
sb.append(arr[x]);
}else {
sb.append(arr[x]).append(", ");
}
}
//添加方法
sb.append("]");
String s = sb.toString();
return s;
}
}
集合
集合的使用: 集合创建示例://String类型的集合
ArrayList<String> arrayList = new ArrayList<String>();
//int类型的集合
ArrayList<Integer> integers = new ArrayList<Integer>();
//注意<引用性>
常用方法:
import java.util.ArrayList;
/*集合的常用操作*/
public class Array2 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("hello");
arrayList.add("world");
arrayList.add("java");
//修改索引处的元素,返回被修改的元素
/*System.out.println(arrayList.set(1,"javase"));
System.out.println(arrayList);*/
//返回索引处的元素
/*System.out.println(arrayList.get(1));
System.out.println(arrayList);*/
//删除索引处的元素,返回被删除的元素
/* System.out.println(arrayList.remove(2));
System.out.println(arrayList);*/
//返回集合的元素个数
/*System.out.println(arrayList.size());
System.out.println(arrayList);*/
//遍历集合
for (int i = 0; i < arrayList.size(); i++){
System.out.println(arrayList.get(i));
}
}
}
类
类
类:类是一个模板,它描述一类对象的行为和状态。 下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object): ![在这里插入图片描述](https://img-blog.csdnimg.cn/561658e70843443ba1b903cd972df93c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdi13LXY=,size_17,color_FFFFFF,t_70,g_se,x_16)下图中汽车为类(class),而具体的每辆车为该汽车类的对象(object),对象包含了汽车的颜色、品牌、名称等。
Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。
拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。
对比现实对象和软件对象,它们之间十分相似。
软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
类的使用案例01
创建学生类,添加学生对象并输出
学生类:
public class Student {
//成员变量
private String name;
private String age;
//无参构造
public Student(){
};
//有参构造
public Student(String name,String age){
this.name = name;
this.age = age;
}
//name和age的set和get方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(String age){
this.age = age;
}
public String getAge(){
return age;
}
}
测试类
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo {
//需要从键盘录入学生信息
/*
* 创建一个学生类
* 创建一个学生集合
* 创建学生对象
* 把学生对象添加到集合里面
* 遍历集合
* */
public static void main(String[] args) {
//创建一个学生集合
ArrayList<Student> array = new ArrayList<Student>();
//添加三个人到集合中
addArrayList(array);
addArrayList(array);
addArrayList(array);
//输出集合中的学生对象
for (int i = 0; i < array.size(); i++){
Student s = array.get(i);
System.out.println(s.getName()+","+s.getAge());
}
}
/*
* 返回值类型:void
* 参数:ArrayList<Student> arry
* */
public static void addArrayList(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
String age = sc.nextLine();
//创建学生对象
Student s = new Student();
s.setName(name);
s.setAge(age);
//把学生对象添加到集合里面
array.add(s);
}
}
使用案例02
小型学生管理系统:
学生类:
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;
}
//成员变量的set和get方法
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;
}
public String getSid() {
return sid;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
public String getAddress() {
return address;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo {
/*
* 定义一个学生类
* 主界面的代码编写
* 添加一个学生
* 修改一个写生
* 查看所有学生
* 退出系统*/
public static void main(String[] args) {
//创建一个集合接受学生信息
ArrayList<Student> array = new ArrayList<Student>();
while (true) {
//1使用输出语句完成主界面的编写
System.out.println("-----欢迎来到学生管理系统-----");
System.out.println("1.添加学生");
System.out.println("2.修改学生");
System.out.println("3.删除学生");
System.out.println("4.查看所有学生");
System.out.println("5.退出");
//2使用键盘输入选择
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的选择:");
String s = sc.nextLine();
//3使用switch实现操作的选择
switch (s) {
case "1":
addStudent(array);
System.out.println("添加学生成功");
break;
case "2":
//System.out.println("修改学生成功");
changeStudent(array);
break;
case "3":
//System.out.println("删除学生");
deleteStudent(array);
break;
case "4":
findallStudent(array);
//System.out.println("查看所有学生");
break;
case "5":
System.out.println("谢谢使用");
System.exit(0);//JVM退出系统
}
}
}
//定义一个方法,查看学号是否被占用
public static boolean isUsed(ArrayList<Student> array, String sid) {
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
flag = true;
}
}
return flag;
}
//把学生添加到集合里面
public static void addStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
//为了让sid在循环外面使用把sid定义在外面
String sid = "";
//为了程序回到这里继续输入学号,因此使用循环实现
while (true) {
//输入学生信息
System.out.println("请输入一个学号:");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("你输入的学号已被占用,请重新输入");
} else {
break;
}
}
//输入添加学生的信息
System.out.println("请输入一个姓名:");
String name = sc.nextLine();
System.out.println("请输入一个年龄:");
String age = sc.nextLine();
System.out.println("请输入一个住址:");
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("添加成功");
}
//查看所有学生
public static void findallStudent(ArrayList<Student> array) {
if (array.size() == 0) {
System.out.println("无信息,请先添加信息在查询");
return;
}
//显示表头信息
//\t相当于tab键
System.out.println("学号" + "\t\t" + "姓名" + "\t" + "性别" + "\t" + "住址" + "\t");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁" + "\t" + s.getAddress());
}
}
//删除学生信息
public static void deleteStudent(ArrayList<Student> array) {
int index = -1;
Scanner sc = new Scanner(System.in);
//用键盘输入需要删除的信息
System.out.println("请输入你需要删除的id");
String sid = sc.nextLine();
//循环遍历查询需要删除的学生信息并删除
for (int i = 0; i < array.size(); i++) {
Student stu = array.get(i);
if (stu.getSid().equals(sid)) {
index = i;
}
}
if (index == -1) {
System.out.println("未查询到你需要删除的学生信息!");
} else {
array.remove(index);
System.out.println("删除成功!");
}
}
//修改学生信息
public static void changeStudent(ArrayList<Student> array) {
//要修改学生的下标
int index = -1;
Scanner sc = new Scanner(System.in);
//输入要修改的学生学号
System.out.println("请输入要修改的学生号:");
String sid = sc.nextLine();
//利用循环修改学生信息
for (int i = 0; i < array.size(); i++) {
Student stu = array.get(i);
if (stu.getSid().equals(sid)) {
index = i;
}
}
if (index == -1) {
System.out.println("未查询到需要修改的学生信息");
} else {
//输入修改的学生信息
System.out.println("请输入学生的新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生的新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生的新居住地:");
String address = sc.nextLine();
//创建一个新的学生对象
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//修改学生信息
array.set(index, s);
}
}
}