学习时间:

2022 /7/2 - 7/3 七月第一个周末


学习目标:

视频p115-p149;

1.字符串

2.集合基础;

3.学生管理系统;


学习内容:

目录

1.String

1.String

String概述​编辑

String构造方法

String对象特点​编辑new会开辟新内存,直接赋值 如果两个值一样内存位置也一样

字符串比较​编辑

用户登录

遍历字符串

统计字符次数

拼接字符串

2.StringBuilder

StringBuilder概述 ​编辑

StringBuilder构造方法​编辑

StringBuilder 和String相互转换

案例:

2.集合基础

集合概述

ArrayList的构造方法和添加方法

ArrayList的常用方法​编辑

案例

学生管理系统



1.String

1.String

  • String概述

  • String构造方法

    //string构造方法:
    //public String(),创建一个空白字符串对象,不含有任何内容;
    //public String(char[] chs),根据字符串数组的内容,来创建字符串对象。
    //public Strinf(byte[] bys),根据字节数组内容,来创建字符串对象。
    //String s=“abc”;直接赋值的方法创建字符串对象,内容就是abc;//推荐直接赋值的方法得到字符串对象public class String_01 {public static void main(String[] args) {//public String(),创建一个空白字符串对象,不含有任何内容;String s1 = new String();System.out.println("s1"+s1);//public String(char[] chs),根据字符串数组的内容,来创建字符串对象。char[] chs={'a','b','c'};String s2=new String(chs);System.out.println("s2"+s2);//public Strinf(byte[] bys),根据字节数组内容,来创建字符串对象。byte[] bys={97,98,99};String s3 = new String(bys);System.out.println("s3"+s3);//String s=“abc”;直接赋值的方法创建字符串对象,内容就是abc;String s4="abc";System.out.println("s4"+s4);}
    }
  • String对象特点new会开辟新内存,直接赋值 如果两个值一样内存位置也一样

  • 字符串比较

    public class test {public static void main(String[] args){char[] arr = {'a','b','c'};String s1 = new String(arr);String s2 = new String(arr);String s3 = "abc";String s4 = "abc";System.out.println(s1==s2);System.out.println(s1==s3);System.out.println(s3==s4);System.out.println("````````````````````````");System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(s3.equals(s4));}
    }
    

 案例

  • 用户登录

    import java.util.Scanner;
    //需求:已知用户名和密码,请用程序实现模拟用户登录,总共给三次机会,登陆之后,给出相应提示。
    public class Lojinn{public static void main(String[] args) {String username = "susu";String passport = "123";for(int i = 1;i <= 3;i++){Scanner sc = new Scanner(System.in);System.out.println("请输入用户名:");String name=sc.nextLine();System.out.println("请输入密码:");String port= sc.nextLine();if((name.equals(username)) && (port.equals(passport))){System.out.println("登陆成功");break;}else{if(2-i==0){System.out.println("登陆失败,账号锁定。");}else{System.out.println("登陆失败,你还有"+(2-i)+"次机会");}}}}}
  • 遍历字符串

    import java.util.Scanner;
    //字符串的索引也是从0开始的、
    public class zhifuchuan {public static void main(String[] args) {//键盘录入一个字符串,用Scanner实现;Scanner sc=new Scanner(System.in);System.out.printf("请输入一个字符串:");String line= sc.nextLine();for(int i=0;i<line.length();i++){System.out.println(line.charAt(i));}}
    }
  1. 统计字符次数

    import java.util.Scanner;
    //需求:键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符字符出现的次数
    //判断遍历到的字符属于那种类型,然后对应类型变量的统计+1。
    public class accuse {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.printf("请输入一个字符串");String line=sc.nextLine();int bigCount=0;int smallCount=0;int numberCount=0;for(int i=0;i<line.length();i++){char ch=line.charAt(i);if(ch>'A'&&ch<'Z'){bigCount++;}else if(ch>'a'&&ch<'z'){smallCount++;}else if (ch>'0'&&ch<'9'){numberCount++;}}System.out.println("大写字母:"+bigCount+"个");System.out.println("小写字母:"+smallCount+"个");System.out.println("数字:"+numberCount+"个");}
    }
  • 拼接字符串

    //要求:定义一个方法,把int数组中的数据按照指定格式拼接成一个字符出返回,
    //调用方法,并在控制台输出结果。例如,数组为int[]arr={1,2,3};执行后输出结果为[1, 2,3]'public class stick {public static void main(String[] args) {int[] arr={1,2,3};String s=arrayToString(arr);System.out.println("s:"+ s);}public static String arrayToString(int[] arr) {String s="";s+="[";for(int i=0;i<arr.length;i++){if(i==arr.length-1){s+=arr[i];}else{s+=arr[i];s+=", ";}}s+="]";return s;}
    }
  •  字符串反转
    import java.util.Scanner;
    //定义一个方法,实现字符串反转。
    public class reverses {public static void main(String[] args) {Scanner sc= new Scanner(System.in);System.out.printf("请输入一个字符串:");String line=sc.nextLine();String s=reverse(line);System.out.println("s:"+ s);}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

  • StringBuilder概述 

    如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作还不可避免。

    StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器
    这里的可变指的是StringBuilder对象中的内容是可变的

    String和StringBuilder的区别:
    String:内容是不可变的StringBuilder:内容是可变的

  • StringBuilder构造方法

  • StringBuilder 和String相互转换

1.StringBuilder转换为String
publicString toString():  通过 toString()就可以实现把StringBuilder转换为String
2.String转换为StringBuilder
public StringBuilder(String s):  通过构造方法就可以实现把String转换为StringBuilder

案例:

1.字符串拼接升级版

public class stickUp {public static void main(String[] args) {int[] arr={1,2,3};String s=arrayToString(arr);System.out.println("s:"+s);}public static String arrayToString(int[] arr){StringBuilder sb=new StringBuilder();sb.append("[");for(int i=0;i<arr.length;i++){if(i== arr.length-1){sb.append(arr[i]);}else{sb.append(arr[i]).append(", ");}}sb.append("]");String s= sb.toString();return s;}
}

2.字符串反转升级版

public class reverseUp {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String line = sc.nextLine();String s=myReserve(line);System.out.println("s:"+s);}public static String myReserve(String s) {/* StringBuilder sb=new StringBuilder(s);sb.reverse();String ss=sb.toString();return ss;*/return new StringBuilder(s).reverse().toString();}
}

2.集合基础

  1. 集合概述

    集合类的特点:提供一种存储空问可变的存储模型,存储的数据容量可以发生改变集合类有很多,目前我们先学习一个: ArrayList

  2. ArrayList的构造方法和添加方法

    /*
    ArrayList的构造方法:
    public ArrayList():创建一个空的集合对象。
    ArrayList的添加方法:
    public boolean add(E e):将指定元素追加到此集合的末尾。
    public void add(index, E elemen):在此集合的指定位置插入指定元素。*/
    public class FundnAdd {public static void main(String[] args) {ArrayList<String> array=new ArrayList<String>();//   System.out.println(array.add("hello"));array.add("hello");array.add("world");array.add("java");array.add(1,"wuhu");System.out.println("array:"+array);}
    }

    第二种在指定位置添加方法时,如果是中间部分,那数组中的元素依次后移;如果在末尾位置,那么直接补到结尾,如果超过结尾,比如本来0-2,插入到4位置,越界,会报错。

  3. ArrayList的常用方法

    remove&set&get:如果删除越界处的元素,会报错。

  4. 案例

  • 1.储存字符串

    //需求:创建一个储存字符串的集合,存储3个字符串元素,实用程序在控制台遍历该集合。
    public class chuncu {public static void main(String[] args) {//创建集合对象ArrayList<String> array =new ArrayList<String>();//在集合中添加字符串对象array.add("liu");array.add("zuo");array.add("feng");//遍历集合。通过get(int index)实现。
    /*        System.out.println(array.get(0));System.out.println(array.get(1));System.out.println(array.get(2));*///遍历集合,其次要获得到集合的长度,用size()方法实现。for(int i=0;i<array.size();i++){String s=array.get(i);System.out.println(s);}
    }
    }
  • 2.储存学生对象
    public class Student {private String name;private int age;public Student() {}public Student(String name,int age){this.name=name;this.age=age;}public void setName(String name){this.name=name;}public void setAge(int age){this.age=age;}public String getName(){return name;}public int getAge(){return age;}
    }
    
    //需求:创建一个存储学生对象的集合,存储三个学生对象,使用程序实现在控制台遍历改集合。
    public class cunStudents {public static void main(String[] args) {//创建集合对象ArrayList<Student> array=new ArrayList<Student>();//创建学生对象Student s1=new Student("小明",15);Student s2=new Student("小娜",16);Student s3=new Student("小英",14);//添加学生对象到集合中array.add(s1);array.add(s2);array.add(s3);for(int i=0;i<array.size();i++){Student s= array.get(i);System.out.println(s.getName()+","+s.getAge());}}
    }
    
  • 学生管理系统

  • 3.储存学生对象并遍历升级版
  • 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 void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
    }

    上面是学生类;下面是主界面。                                                                                               利用Alt + Ins 可以快速设置set和get方法。

    import java.sql.SQLOutput;
    import java.util.ArrayList;
    import java.util.Scanner;public class StudentManager {public static void main(String[] args) {ArrayList<Student> array=new ArrayList<Student>();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 退出");System.out.println("请输入你的选择:");Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1":addStudent(array);break;case "2":updateStudent(array);break;case "3":deleteStudent(array);break;case "4":findStudent(array);break;case "5":System.out.println("谢谢使用");break;}}}public static void addStudent(ArrayList<Student> array) {Scanner sc=new Scanner(System.in);String sid;while(true) {System.out.println("请输入学生学号:");sid = sc.nextLine();boolean flag = isUsing(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 findStudent(ArrayList<Student> array) {if(array.size()==0){System.out.println("无信息,请录入学生信息");return;}System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地");for(int i=0;i<array.size();i++){Student s=array.get(i);}}public static void deleteStudent(ArrayList<Student> 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)){index=i;break;}}if(index==-1){System.out.println("该信息不存在,请重新输入");}else{array.remove(index);System.out.println("删除学生成功");}}public static void updateStudent(ArrayList<Student> array) {Scanner sc= new Scanner(System.in);System.out.println("请输入你要修改的学生的学号:");String sid=sc.nextLine();//键盘录入要修改的学生信息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);//遍历集合修改对应的学生信息for(int i=0;i<array.size();i++){Student student=array.get(i);if(student.getSid().equals(sid)){array.set(i,s);break;}}System.out.println("修改学生信息成功!");}public static boolean isUsing(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;break;}}return flag;}}

黑马程序员-java教程 代码笔记相关推荐

  1. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

  2. 黑马程序员Java教程学习笔记(三)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...

  3. 黑马程序员-Java教程-10缓冲流、转换流、序列化流

    day10[缓冲流.转换流.序列化流.打印流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本 ...

  4. 黑马程序员JAVA 教程--基础语法

    基础语法 注释 注释概述 注释分类 关键字 关键字概述 关键字特点 常量 常量概述 常量分类 数据类型 计算机存储单元 数据类型 数据类型内存占用和取值范围 变量 变量概述 变量定义 变量的使用 变量 ...

  5. 黑马程序员 JAVA基础学习笔记

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- ------小弟在因特网的小窝,祝愿所有的朋友身体健康------- 面向对象: 就是更加透明, ...

  6. 2023年黑马程序员Java学习路线图

    2023年Java学科免费学习资源放送40+套课程,超过600小时的内容! 在过去的一年里,为了帮助更多人线上充电,学会更多技能,黑马程序员举办了 150+ 场免费直播公开课,新增精品视频教程 80+ ...

  7. C++学习笔记(B站黑马程序员C++教程)

    C++学习笔记(B站黑马程序员C++教程) 简介 视频链接https://www.bilibili.com/video/BV1kV411U7Ub?spm_id_from=333.999.0.0 建议用 ...

  8. 【黑马程序员 C++教程从0到1入门编程】【笔记4】C++核心编程(类和对象——封装、权限、对象的初始化和清理、构造函数、析构函数、深拷贝、浅拷贝、初始化列表、友元friend、运算符重载)

    黑马程序员C++教程 文章目录 4 类和对象(类属性[成员属性],类函数[成员函数]) 4.1 封装 4.1.1 封装的意义(三种权限:public公共.protected保护.private私有)( ...

  9. [学习笔记]黑马程序员python教程

    文章目录 思维导图 Python基础知识图谱 面向对象 SQL入门和实战 Python高阶技巧 第一阶段 第九章:Python异常.模块与包 1.9.1异常的捕获 1.9.1.1 为什么要捕获异常 1 ...

  10. 黑马程序员Python教程的代码--摆放游戏

    把黑马程序员Python教程的代码跟着老师打了一遍,供大家参考学习. 可直接粘贴以下代码学习,对应课程380-384节 class HouseItem:def __init__(self,name,a ...

最新文章

  1. C语言入门练习 - 第一期 变量、输入输出、表达式与顺序语句(题解)
  2. 国际域名也将列入监管范畴(本文转载自【易名中国】)
  3. 【struts2+hibernate+spring项目实战】用户登录校验(struts拦截器)
  4. wxWidgets:wxFontPickerCtrl类用法
  5. Android 自定义控件 ViewPager头部指示器控件 ViewPagerBelowIndicator
  6. python中global 和 nonlocal 的作用域
  7. chrome开发者工具各种骚技巧
  8. 安装了虚拟机后mysql用不了_在虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql如何解决?...
  9. 排球计分程序重构(四)
  10. SRv6技术课堂(一):SRv6概述
  11. Excel VBA编程实战宝典PDF扫描版电子书介绍
  12. 共享充电宝之争:胜于专利,败于骂街 | 一点财经
  13. 如何在表格里做计算机统计表,(excel怎么做统计表)excel表格如何制作数据表
  14. katago安装使用
  15. 什么是字长(百度百科)
  16. python怎么保存到桌面_python3应用windows api对后台程序窗口及桌面截图并保存的方法...
  17. 对于美国中部覆盖图防护林形态的自动检测技术
  18. 2023 物联网毕业设计选题推荐 100例
  19. HTML怎么建立两行四列的li,关于CSS如何实现多行多列布局的方法
  20. Springboot毕设项目烬燃电竞酒店管理系统7xgz8(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 传智播客8月C/C++基础班开班
  2. java对服务器进行监控_java服务器状态监控实现
  3. Matlab中 regionprops和bwlabel的用法
  4. Unity 3D网页游戏与flash网页游戏的较量
  5. echarts模拟迁徙城市重名问题
  6. keil生成bin文件
  7. 开源在线视频播放器flowplayer
  8. 12306全国火车站点所在区划代码经纬度数据,精确到县区级
  9. 百度网盘不限速下载器 proxyee down for Mac百度网盘高速下载器
  10. IBM P系列小型机HMC默认IP地址