Java中StringBuffer的相关运用与实践
文章目录
- 前言
- 一、准备工作
- 二. 开始写我们的程序
- 先看代码:
- 简单解说一下
- 总结
前言
hallo大家好,我是树树。今天树树来带大家通过学习StringBuffer中一些便利的用法来写一个信息的录入、修改和删除的程序设计。通过实践来使自己熟练使用StringBuffer。(写这个纯粹是为了StringBuffer的学习与运用,纯粹写着自己学习,内部逻辑很简单,所以别抄我代码【诶嘿】)
一、准备工作
- 没啥技术含量,注意美观就好。
public class Menu {public static void meNu(){System.out.println("******************");System.out.println(" 信息录入 ");System.out.println(" 信息修改 ");System.out.println(" 信息删除 ");System.out.println("******************");}
}
- 建立用户信息,这个也没啥含金量
public class Student {private String name;public String garde;public String school;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGarde() {return garde;}public void setGarde(String garde) {this.garde = garde;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}public String age;public String sex;public String phoneNumber;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", garde='" + garde + '\'' +", school='" + school + '\'' +", age='" + age + '\'' +", sex='" + sex + '\'' +", phoneNumber='" + phoneNumber + '\'' +'}';}
二. 开始写我们的程序
先看代码:
public static void main(String[] args) {boolean flag = true;//开关StringBuffer stu = new StringBuffer();while(flag){Menu.meNu();Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();switch(a){case 1:System.out.println("请输入学生信息");String s = scanner.next();stu.append(addInforation(s));break;case 2:System.out.println("请输入要修改的信息");Scanner sc = new Scanner(System.in);updateInformation(stu, sc.next());break;case 3:delInformation(stu);break;default:System.out.println("输入错误");}
}
}
// 信息添加public static String addInforation(String info){String[] arr = info.split(",");//拆解信息Student student = new Student();student.setName(arr[0]);student.setGarde(arr[1]);student.setSchool(arr[2]);student.setAge(arr[3]);student.setSex(arr[4]);student.setPhoneNumber(arr[5]);System.out.println(student);return student.toString();}
// 信息修改public static int updateInformation(StringBuffer stringBuffer,String s){String str= stringBuffer.toString();String arr[] = str.split(",");int end = 0;end+=arr[0].length()+arr[1].length()+arr[2].length()+2;int start = end - 7;stringBuffer.delete(start,end-1);System.out.println(stringBuffer);stringBuffer.insert(start,s);System.out.println(stringBuffer);return 0;}
// 信息删除public static int delInformation(StringBuffer stringBuffer){String str = stringBuffer.toString();Scanner sc = new Scanner(System.in);String a = sc.next();switch (a){case "名字":System.out.println(str.replace("树树"," "));break;case "年级":System.out.println(str.replace("大一"," "));break;case "学校":System.out.println(str.replace("北京大学"," "));break;case "年龄":System.out.println(str.replace("19"," "));break;case "性别":System.out.println(str.replace("男"," "));break;case "电话":System.out.println(str.replace("1253647537485"," "));}return 0;}
简单解说一下
- 不难看出,我先引用了菜单,然后用Switch函数划分不同的功能,在输入用户的信息后,将信息存储于stu中
while(flag){Menu.meNu();Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();switch(a){case 1:System.out.println("请输入学生信息");String s = scanner.next();stu.append(addInforation(s));break;case 2:System.out.println("请输入要修改的信息");Scanner sc = new Scanner(System.in);updateInformation(stu, sc.next());break;case 3:System.out.println("请输入要删除的信息");delInformation(stu);break;default:System.out.println("输入错误");}
- 信息添加功能中,树树把输入的信息用" , "隔开,然后用split(“,”)函数拆解信息,再把每个信息块从0到5编号,然后将其转为String格式,输出以检验
public static String addInforation(String info){String[] arr = info.split(",");//拆解信息Student student = new Student();student.setName(arr[0]);student.setGarde(arr[1]);student.setSchool(arr[2]);student.setAge(arr[3]);student.setSex(arr[4]);student.setPhoneNumber(arr[5]);System.out.println(student);return student.toString();}
- 信息修改功能中,很明显,树树将转化为String格式的信息存储到了str中,然后用str.split(“,”)函数将每个信息块分隔,以便于提取有用信息并加以修改。在这之后,树树通过每个信息块的长度与逗号个数的加减运算得知要删减信息的始末位置,最后删减被修改的信息,增添修改后的新信息,再输出即可。
注意:delet()函数的始末数字的集合是左闭右开
public static int updateInformation(StringBuffer stringBuffer,String s){String str= stringBuffer.toString();String arr[] = str.split(",");int end = 0;end+=arr[0].length()+arr[1].length()+arr[2].length()+2;int start = end - 7;//这里你可以自己改stringBuffer.delete(start,end-1);System.out.println(stringBuffer);stringBuffer.insert(start,s);System.out.println(stringBuffer);return 0;}
- 信息删除功能,树树这里用了逻辑很简单的switch函数,但是嘛,这样可以更加了解信息的toString转化和只有String类型可用的replace()函数,快说谢谢树树!也可以把信息修改功能中删除被修改信息的那一坨照搬下来,练手的自己敲一敲。
public static int delInformation(StringBuffer stringBuffer){String str = stringBuffer.toString();System.out.println("请输入要删除的信息类型")Scanner sc = new Scanner(System.in);String a = sc.next();switch (a){case "名字":System.out.println(str.replace("树树"," "));break;case "年级":System.out.println(str.replace("大一"," "));break;case "学校":System.out.println(str.replace("北京大学"," "));break;case "年龄":System.out.println(str.replace("19"," "));break;case "性别":System.out.println(str.replace("男"," "));break;case "电话":System.out.println(str.replace("114514"," "));}return 0;
总结
今天的内容就到这里了,每天进步一点,总有一天能看见自己走过的千万历程。
Java中StringBuffer的相关运用与实践相关推荐
- Java中Date各种相关用法
Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD: Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...
- Java中邮箱的相关使用
Java中邮箱的相关使用 1 Java中邮箱的简介 2 邮箱的使用 1 Java原生操作邮箱 1 导入maven坐标 2 添加邮件工具类 2 SpringBoot中操作邮箱 0 准备一个好的Sprin ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- java中线程总结,JAVA中线程的相关小结
·什么是线程 线程:进程中负责程序执行的执行单元.一个进程中至少有一个线程. 多线程:一个进程中包含有多个线程,但CPU在同一时间只允许一个线程的进行.所以有多个线程的运行是根据CPU切换完成,如何切 ...
- Java中SMB的相关应用
目录 SMB 服务操作 Ⅰ SMB简介 Ⅱ SMB配置 2.1 Windows SMB Ⅲ 添加SMB依赖 Ⅳ 路径格式 Ⅴ 操作共享 Ⅵ 登录验证 SMB 服务操作 Ⅰ SMB简介 SMB(全称 ...
- JAVA中parameterized,Java中与泛型相关的接口 之 ParameterizedType
在阅读本文之前可以先阅读以下三篇,以便对Java中的泛型有一个全局的认识: 简介 ParameterizedType是Type的子接口,表示一个有参数的类型,例如Collection,Map等.但实现 ...
- 【转】Java中关于异常处理的十个最佳实践
原文地址:http://www.searchsoa.com.cn/showcontent_71960.htm 导读:异常处理是书写强健Java应用的一个重要部分,Java许你创建新的异常,并通过使用 ...
- Java中的sqlsession_java相关:MyBatis中SqlSession实现增删改查案例
java相关:MyBatis中SqlSession实现增删改查案例 发布于 2020-6-13| 复制链接 摘记: 前言 开博客这是第一次写系列文章,从内心上讲是有点担心自己写不好,写不全,毕 ...
- java中io流中显示中文_关于JAVA中IO流相关问题概述
流是用于连接程序和设备之间的管道,主要用于数据传输.这个管道上有很多"按钮",每个"按钮"可以实现不同的功能. 四大基本抽象流:输入流,输出流,字节流,字符流 ...
最新文章
- 【C++】多线程与互斥锁【二】
- 前端token刷新并发处理
- Python四道面试题
- java annotation入门_JAVA - Annotation 注解 入门
- TypeError: ‘NoneType‘ object is not callable--python报错解决办法
- 为什么超长列表数据的翻页技术实现复杂(二)
- 阿拉伯数字转换成中文大写
- C#之json序列化与反序列化
- 9个有用的php功能
- Cadence 元器件封装库命名规范
- CREO:CREO软件之零件【模型】形状之拉伸、旋转、旋转混合的简介及其使用方法(图文教程)之详细攻略
- Html实现Excel锁定表头效果
- 电商运营学习成长目录
- 【目标检测】(10) Mosaic 数据增强方法,附Python完整代码
- win10 + ubuntu双系统及20系显卡驱动安装
- Dijkstra(迪杰斯特拉)算法求单源最短路径问题
- 【大数据入门核心技术-Tez】(四)Tez与Hdfs整合
- 计算机网络实验(华为eNSP模拟器)——第十四章 RIP协议和OSPF协议
- 牛客小白月赛2 E.是是非非
- android root 无法卸载应用,关于卸载android 手机预装应用的方法,无需root
热门文章
- labelme标注结果可视化(持续补充)
- Excel 宏录制与VBA编程 —— 3、第一个VBA弹窗代码(附视频)
- 产品发布新闻稿撰写:介绍产品的新闻稿怎么写?
- pwnable.kr wp leg
- ubuntu apt-get 安装amd显卡驱动
- 广西北海自愿连锁经营业/1040阳光工程上总之后的真实内幕
- 如何看待越来越多人报名参加软考?
- Google blockly简介(二)Blockly Developer Tools使用
- 形容等待时间长的句子_形容等待的时间很漫长的句子
- l7sa008b故障代码_奥克斯空调故障显示代码E1E2E3E4E5E6E7E8E9