JavaSE 面向对象程序设计进阶 IO 综合练习 利用糊涂包生成假数据 随机点名器 登录案例

目录

生成假数据

利用糊涂包生成假数据

随机点名器

综合练习

生成假数据

制造假数据

制造假数据也是开发中的一个能力

在各个网上爬取数据

这是其中一个方法

爬取网站中的内容

import cn.hutool.core.io.FileUtil;import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {public static void main(String[] args) throws IOException {//定义变量记录网址String BHU="https://www.beihua.edu.cn/info/1053/7154.htm";//爬取数据,把网址上的数据拼成一个字符串//爬取出来的是网页的源代码String str=webCrawler(BHU);//通过正则表达式把其中符合要求的数据获取出来//第一个参数是字符串,第二个参数是正则表达式ArrayList<String>List=getDate(str,"[\\u4e00-\\u9fa5]*北华[\\u4e00-\\u9fa5]*");for (String s : List) {System.out.println(s);}FileUtil.writeLines(List,"C:\\Users\\ZDY\\Desktop\\Dduo\\untitled\\BHU.txt","UTF-8",true);System.out.println("爬取成功");}/***从网络中爬取数据,把数据拼成字符串返回** 形参:网址* 返回值:爬取到的数据** */public static String webCrawler(String net) throws IOException {//定义一个StringBuilder拼接爬取到的数据StringBuilder sb=new StringBuilder();//创建一个URL对象URL url=new URL(net);//连接上网址//保证网址是畅通的,而且这个网址是可以连接上的URLConnection conn=url.openConnection();//读取数据 等于是获取了字节流InputStreamReader isr=new InputStreamReader(conn.getInputStream());int ch;while((ch=isr.read())!=-1){sb.append((char)ch);}isr.close();return sb.toString();}/***  根据正则表达式获取字符串中的内容** 形参1:完整的字符串* 形参2:正则表达式*** */private static ArrayList<String> getDate(String str, String regex) {//想要获取什么,就写什么正则表达式ArrayList<String>list =new ArrayList<>();//按照正则表达式的规则,去获取数据Pattern pattern=Pattern.compile(regex);//按照pattern的规则,到src当中获取数据Matcher matcher=pattern.matcher(str);while(matcher.find()){String s=matcher.group();
//            System.out.println(matcher.group());list.add(s);}return list;}}

利用糊涂包生成假数据

利用了hutool工具包

可以爬取开源中国的开源资讯

随机点名器

求出每一个数据的权重占比

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class Main {public static void main(String[] args) throws IOException {//把文件中所有的数据读取到内存中封装成对象统一管理ArrayList<Student>list=new ArrayList<>();BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\ZDY\\Desktop\\Dduo\\untitled\\a.txt"));String line;while ((line=br.readLine())!=null){//System.out.println(line);String str[]= line.split("-");list.add(new Student(str[0],str[1],Integer.parseInt(str[2]),Double.parseDouble(str[3])));}br.close();//写带权重的随机//计算权重的总和double weight=0;for (Student stu : list) {weight+=stu.getWeight();}//计算每一个人的实际占比double[] arr=new double[list.size()];int index=0;for (Student stu : list) {arr[index]=stu.getWeight()/weight;index++;}//求出每一个权重占比范围for (int i = 1; i < arr.length; i++)arr[i]=arr[i]+arr[i-1];//随机抽取 0~1的浮点数double number=Math.random();//判断number在arr中的位置//二分查找算法int index2=Arrays.binarySearch(arr,number);//方法返回值为插入点乘负一后减去1int index3=(index2+1)*-1;//输出获取到的学生Student s=list.get(index3);System.out.println(s);//修改当前学生的权重s.setWeight(s.getWeight()/2);//把集合中的数据再次写到文件当中BufferedWriter  bw=new BufferedWriter(new FileWriter("C:\\Users\\ZDY\\Desktop\\Dduo\\untitled\\a.txt"));for (Student stu : list) {bw.write(stu.toString());bw.newLine();}bw.close();//遍历集合for (Student student : list) {System.out.println(student);}}
}

综合练习

写一个登录的小案例

将正确的用户名和密码手动保存在本地的userinfo.txt文件中

保存格式为:username=zhangsan & password=123 & count=0;

让用户键盘录入用户名和密码

比较用户录入的和正确的用户名密码是否一致

如果一致则打印登录成功

如果不一致则打印登录失败

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;public class LoginExample {private static final String FILENAME = "userinfo.txt";public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 提示用户输入用户名和密码System.out.print("请输入用户名: ");String usernameInput = scanner.nextLine().trim();System.out.print("请输入密码: ");String passwordInput = scanner.nextLine().trim();// 检查用户名和密码是否匹配if (isValidUser(usernameInput, passwordInput)) {System.out.println("登录成功");} else {System.out.println("登录失败");}scanner.close();}private static boolean isValidUser(String username, String password) {try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {String line;while ((line = br.readLine()) != null) {// 解析每一行中的用户名、密码和登录次数String[] parts = line.split("&");String savedUsername = parts[0].split("=")[1].trim();String savedPassword = parts[1].split("=")[1].trim();// 检查用户名和密码是否匹配if (username.equals(savedUsername) && password.equals(savedPassword)) {return true;}}} catch (IOException e) {e.printStackTrace();}return false;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第24天 | LSTM+CRF序列标注

内容介绍&#xff1a; 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名实…

【JavaScript 算法】二分查找:快速定位目标元素

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组中快速定位目标元素。相比于线性查找&#xff0c;二分查找…

护(H)网(W)行动正当时:你对HW知多少,一文带你全面了解护网行动

引言&#xff1a;2016年我国发布了《网络安全法》&#xff08;于2017年6月1日正式生效&#xff09;&#xff0c;明确规定了关键信息基础设施的运营者必须制定网络安全事件应急预案&#xff0c;并定期进行演练&#xff0c;为HW行动的开展提供了法律依据&#xff0c;通过红蓝对抗…

Unity 中使用状态机模式来管理UI

1. 清晰的状态管理 状态机模式允许你以结构化的方式管理不同的UI状态。每个状态&#xff08;比如主菜单、设置菜单、游戏中界面等&#xff09;都有其独立的行为和属性&#xff0c;这使得管理复杂UI逻辑变得更加清晰和可维护。 2. 简化的状态切换 状态机模式可以简化不同UI状…

报表控件DevExpress Reporting中文教程 - 如何创建穿透钻取报表?

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 钻取报表允许用户通过单击主/活动报表文档中的…

Android的dtbo文件介绍

文章目录 设备树&#xff08;Device Tree&#xff09;设备树覆盖&#xff08;Device Tree Overlay, DTO&#xff09;dtbo文件的作用使用流程示例 dtbo 文件是 Android 设备中的设备树覆盖文件&#xff08;Device Tree Blob Overlay&#xff09;。它用于动态地修改设备树配置&am…

智能酒精壁炉与会所会客厅的氛围搭配

智能酒精壁炉与会所会客厅的氛围搭配可以创造出现代、高雅且舒适的环境&#xff0c;提升客人的整体体验。以下是如何将智能酒精壁炉与会所会客厅氛围相协调的几点建议&#xff1a; 现代化与高品位感&#xff1a; 智能酒精壁炉展现出现代化的设计和高科技特点&#xff0c;与会所…

应急响应-战后溯源反制社会工程学

&#x1f3bc;个人主页&#xff1a;金灰 &#x1f60e;作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ &#x1f34a;易编橙终身成长社群&#…

开源的混合AI搜索引擎;定制 Claude 3 Haiku 模型; 和gpt-4o同样Transformer架构的开源视觉语言模型;离线自动转录工具

✨ 1: MemFree MemFree是一款开源的混合AI搜索引擎&#xff0c;可搜索个人知识库和互联网。 MemFree 是一个开源的混合AI搜索引擎&#xff0c;可以同时在你的个人知识库&#xff08;如书签、笔记、文档等&#xff09;和互联网中进行搜索。这款搜索引擎的主要特点包括&#xf…

嵌入式智能手表项目实现分享

简介 这是一个基于STM32F411CUE6和FreeRTOS和LVGL的低成本的超多功能的STM32智能手表~ 推荐 如果觉得这个手表的硬件难做,又想学习相关的东西,可以试下这个新出的开发板,功能和例程demo更多!FriPi炸鸡派STM32F411开发板: 【STM32开发板】 FryPi炸鸡派 - 嘉立创EDA开源硬件平…

GD32MCU最小系统构成条件

大家是否有这个疑惑&#xff1a;大学课程学习51的时候&#xff0c;老师告诉我们51的最小系统构成&#xff1f;那么进入32位单片机时代&#xff0c;gd32最小系统构成又是怎么样的呢&#xff1f; 1.供电电路 需要确保供电的电压电流稳定&#xff0c;以东方红开发版为例&#xff…

ABAQUS广东正版代理商:亿达四方——达索官方授权

在粤港澳大湾区建设的浪潮中&#xff0c;广东作为中国改革开放的前沿阵地&#xff0c;始终走在科技创新的最前线。亿达四方&#xff0c;作为国际领先的仿真软件ABAQUS在广东地区的官方授权代理商&#xff0c;正以先进的技术和服务&#xff0c;推动着广东地区制造业向智能化、高…

【Tomcat目录详解】关于Tomcat你还需要了解的详细内容

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Tomcat的文件结构2.1 bin目录2.1.1 startup和shutdown2.1.2 Catalina2.1.3 serv…

【43页PPT】企业数据架构数据治理设计规划咨询项目建议

本项目聚焦于企业数据资产的深度挖掘与价值最大化&#xff0c;旨在通过一系列定制化策略与架构设计&#xff0c;重塑企业的数据生态体系。我们的核心任务包括&#xff1a; 企业现状深度剖析&#xff1a;全面审视企业当前的数据环境、业务流程及战略方向&#xff0c;精准把握数…

Docker 基本管理及部署

目录 1.Docker概述 1.1 Docker是什么&#xff1f; 1.2 Docker的宗旨 1.3 容器的优点 1.4 Docker与虚拟机的区别 1.5 容器在内核中支持的两种技术 1.6 namespace的六大类型 2.Docker核心概念 2.1 镜像 2.2 容器 2.3 仓库 3.安装Docker 3.1 查看 docker 版本信息 4.…

FPGA上板项目(一)——点灯熟悉完整开发流程、ILA在线调试

目录 创建工程创建 HDL 代码仿真添加管脚约束添加时序约束生成 bit 文件下载ILA 在线调试 创建工程 型号选择&#xff1a;以 AXU9EG 开发板为例&#xff0c;芯片选择 xczu9eg-ffvb1156-2-i 创建 HDL 代码 注意&#xff1a;由于输入时钟为 200MHz 的差分时钟&#xff0c;因此…

2024年高职云计算实验室建设及云计算实训平台整体解决方案

随着云计算技术的飞速发展&#xff0c;高职院校亟需构建一个与行业需求紧密结合的云计算实验室和实训平台。以下是针对2024年高职院校云计算实验室建设的全面解决方案。 1、在高职云计算实验室的建设与规划中&#xff0c;首要任务是立足于云计算学科的精准定位&#xff0c;紧密…

4.SpringBoot自定义封装Starter实践

目录 概述旧版2.7之后自定义Starter 概述 SpringBoot自定义封装Starter实践 旧版 在SpringBoot2.7之前&#xff0c;META-INF 下 spring.factories 加 org.springframework.boot.autoconfigure.EnableAutoConfigurationXXAutoConfiguration 2.7之后 SpringBoot2.7推出新的自动配…

爬虫-浏览器自动化

什么是selenium selenium是浏览器自动化测试框架&#xff0c;原本用于网页测试。但到了爬虫领域&#xff0c;它又成为了爬虫的好帮手。有了 selenium&#xff0c;我们便不再需要判断网页数据加载的方式&#xff0c;只要让 selenium 自动控制浏览器&#xff0c;就像有双无形的手…

【以史为镜、以史明志,知史爱党、知史爱国】中华上下五千年之-元朝

元朝是中国历史上第一个由蒙古族族建立的大统一封建王朝。完整的元王朝历史进程分为四个阶段&#xff1a; 元朝的历史让我们一笔带过&#xff0c;相信大家也不怎么喜欢看。同意的点赞&#xff01; 元朝的前身——蒙古汗国&#xff08;1206年—1271年&#xff09; 建立王朝统治—…