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,一经查实,立即删除!

相关文章

编程语言的选择:如何根据项目需求找到最合适的语言

在软件开发过程中&#xff0c;选择合适的编程语言是项目成功的关键之一。不同的编程语言拥有各自独特的特性和优势&#xff0c;适用于不同类型的项目。本文将从项目需求、团队技能、语言特性等多个角度&#xff0c;探讨如何为特定项目找到最合适的编程语言。 明确项目需求 首…

n2. Web相关工具

Web相关工具 1. http协议状态码2. Web相关工具2.1 links2.2 wget2.3 curl 3. httpd的压力测试工具 1. http协议状态码 http协议状态码分类 1xx&#xff1a;100-101 信息提示 2xx&#xff1a;200-206 成功 3xx&#xff1a;300-307 重定向 4xx&#xff1a;400-415 错误类信息&a…

昇思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;通过红蓝对抗…

嵌入式裸机开发与 Linux 开发

引言 嵌入式系统在现代电子设备中占有重要地位&#xff0c;其开发模式主要分为裸机开发和基于操作系统&#xff08;如 Linux&#xff09;的开发。本文将详细介绍嵌入式裸机开发和 Linux 开发的特点、优缺点&#xff0c;并进行对比分析&#xff0c;以帮助读者更好地理解和选择合…

js 移动数组元素的几个方法

位置交换 /*** param {any[]} arr - 原始数组。* param {number} fromIndex - 当前元素所在位置索引。* param {number} toIndex - 移动到交换的位置索引。* returns {any[]} 返回修改后的数组。*/ const swapItem function(arr, fromIndex, toIndex) {arr[toIndex] arr.spl…

35、php 实现构建乘积数组、正则表达式匹配

题目&#xff1a; uniapp-v3是基于vue3语法的&#xff0c;在hbuilderx中运行即可 Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build 在HBuilderX中导入src文件打包;打包H5手机版可以…

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开源硬件平…

使用mediapip 检测pose 并作为一个服务

代码 import uvicorn from fastapi import FastAPI, HTTPException import cv2 import mediapipe as mp from pydantic import BaseModelapp FastAPI()# 创建一个模型来序列化姿态数据 class PoseData(BaseModel):landmarks: list# 初始化MediaPipe的姿态估计模型 mp_pose m…

GD32MCU最小系统构成条件

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

Qt WARNING: Failure to find: xxxxxx.h

重新规划了自定义文件夹后&#xff0c;编译出现错误&#xff0c;如 Qmake WARNING: Failure to find: xxxxxx.h 或者 error: XXXX.h: No such file or directory 如果文件是在windows下直接重新放置新的目录&#xff0c;那么需要修改.pro文件 老文件的可能没有注释或删除&am…

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…