【Java】基础练习(十)

1.判断邮箱

输入一个电子邮箱,判断是否是正确电子邮箱地址。 正确的邮箱地址:

  • 必须包含 @ 字符,不能是开头或结尾
  • 必须以 .com结尾
  • @和.com之间必须有其他字符

(1) Email类:

package swp.kaifamiao.codes.Java.d0823;
/** 输入一个电子邮箱,判断是否是正确电子邮箱地址。* 正确的邮箱地址:* 必须包含 @ 字符,不能是开头或结尾* 必须以 .com结尾* @和.com之间必须有其他字符*//*** {class description}** @author SWP* @version 1.0.0*/
public class Email {/*** 判断输入的电子邮箱是否正确* @  email 控制台输入* @return 布尔型(true/false)*/public static String isEmail(String email){// 判断是否包含 @ 字符,且不位于开头或结尾if (!email.contains("@") || email.startsWith("@") || email.endsWith("@")){return "邮箱无效!";}// 判断是否以“.com”结尾if (!email.endsWith(".com")){return "邮箱无效!";}// 判断“@”和“,com”之间有没有其他字符int atIndex = email.indexOf("@");int comIndex = email.indexOf(".com");if (atIndex+1 > comIndex){return "邮箱无效!";}return "您输入的邮箱有效!";}
}

(2) EmailTest测试类:

package swp.kaifamiao.codes.Java.d0823;import java.util.Scanner;/*** {class description}** @author SWP* @version 1.0.0*/
public class EmailTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入邮箱:");String str = input.next();String str1 = Email.isEmail(str);System.out.println(str1);}
}

(3) 运行效果:

在这里插入图片描述
在这里插入图片描述


2. 生成密码

随机生成一个 6 位的密码,要求:

  • 不包含重复字符
  • 要有字母和数字
  • 不能以数字开头

(1) Email类:

package swp.kaifamiao.codes.Java.d0823;
/**随机生成一个 6 位的密码,要求:* 不包含重复字符* 要有字母和数字* 不能以数字开头*/import java.util.Random;/*** {class description}** @author SWP* @version 1.0.0*/
public class Password {public static void main(String[] args) {// 定义一个长度为6的字符数组用来存放密码char[] arr = new char[6];// 生成数字和字母的字符集合String characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";// 创建随机对象Random rand = new Random();// 设置密码的开头为非数字的随机字母arr[0] = characters.charAt(rand.nextInt(52) + 10);for (int i = 1; i < arr.length; i++) {char randomChar;do {randomChar = characters.charAt(rand.nextInt(62));} while (contains(arr, randomChar));arr[i] = randomChar;}// 将字符数组转换为字符串String randomPassword = new String(arr);System.out.println("随机生成的密码:" + randomPassword);}// 判断字符数组中是否包含某个字符private static boolean contains(char[] arr, char c) {for (char ch : arr) {if (ch == c) {return true;}}return false;}
}

(2)运行效果:

在这里插入图片描述
在这里插入图片描述


3.生成幸运数字

随机生成 20 个 1 ~ 40 之间的不重复幸运数字存储到数组中。 要求:

  • 数组中的数字乱序

(1) LuckyNumbers类:

package swp.kaifamiao.codes.Java.d0823;/*
生成幸运数字
随机生成 20 个 1 ~ 40 之间的不重复幸运数字存储到数组中。 要求:
数组中的数字乱序*/import java.util.Arrays;
import java.util.Random;/*** {class description}** @author SWP* @version 1.0.0*/
public class LuckyNumbers {public static void main(String[] args) {int[] arr = new int[20];Random rand = new Random();for (int i = 0; i < arr.length;) {int num = rand.nextInt(40) + 1;Arrays.sort(arr, 0, i);if (Arrays.binarySearch(arr, 0, i, num) < 0){arr[i ++] = num;}}charge(arr);charge(arr);charge(arr);System.out.println(Arrays.toString(arr));}public static void charge(int[] arr){Random random = new Random();for (int i = 0; i < 10; i++) {int index = random.nextInt(arr.length);int index1 = random.nextInt(arr.length);int temp = arr[index];arr[index] = arr[index1];arr[index1] = temp;}}
}

(2) 运行效果:

在这里插入图片描述


4.去除重复字符

编写一个程序,去除字符串中的重复字符


(1) Deduplication类:

package swp.kaifamiao.codes.Java.d0823;/*** {class description}** @author SWP* @version 1.0.0*/
public class Deduplication {public static String arrDeduplication(String str){StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (sb.indexOf(String.valueOf(c)) == -1){sb.append(c);}}return sb.toString();}
}

(2) DeduplicationTest类:

package swp.kaifamiao.codes.Java.d0823;import java.util.Scanner;/*** {class description}** @author SWP* @version 1.0.0*/
public class DeduplicationTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入字符串:");String str = input.next();String result = Deduplication.arrDeduplication(str);System.out.println("去重后的字符串为:" + result);}
}

(3) 运行效果:

在这里插入图片描述


5.最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

(1)MaxSubstring类:

package swp.kaifamiao.codes.Java.d0823;import java.util.Arrays;
import java.util.Scanner;/*** {class description}** @author SWP* @version 1.0.0*/
public class MaxSubstring {public static int maxSub(String str) {int count= 0;int[] arr = new int[str.length()];int max = 0;for (int i = 0; i < str.length(); i++) {int j = str.codePointAt(i);Arrays.sort(arr);// 查看元素有没有出现过if (Arrays.binarySearch(arr, str.length() - i, arr.length, j) < 0) {// 没有出现过count ++;} else {// 出现过max = Math.max(max,count);count = 1;arr = new int[str.length()];}arr[0] = j;}max = Math.max(max,count);return max;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入字符串:");String str = scanner.nextLine();int result = maxSub(str);System.out.println("最长子串长度为:" + result);}
}

(2)运行效果:

在这里插入图片描述

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

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

相关文章

Android——基本控件下(十七)

1. 文本切换&#xff1a;TextSwitcher 1.1 知识点 &#xff08;1&#xff09;理解TextSwitcher和ViewFactory的使用。 1.2 具体内容 范例&#xff1a;切换显示当前时间 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools&…

docker安装redis

docker安装redis 一、基本介绍二、前期准备三、docker安装redis3.1 redis镜像拉取3.2 Docker挂载redis配置文件3.3 启动redis容器3.4 验证Redis容器是否正常运行 四、Docker删除Redis容器五、Docker删除Redis镜像 一、基本介绍 Docker 是一个开源的应用容器引擎,参考链接&…

探索最短路径问题:寻找优化路线的算法解决方案

1. 前言&#xff1a;最短路径问题的背景与重要性 在现实生活中&#xff0c;我们常常面临需要找到最短路径的情况&#xff0c;如地图导航、网络路由等。最短路径问题是一个关键的优化问题&#xff0c;涉及在图中寻找两个顶点之间的最短路径&#xff0c;以便在有限时间或资源内找…

【管理运筹学】第 5 章 | 整数规划 (2,割平面法及 0-1 变量的特性)

文章目录 引言三、割平面法四、0-1 型整数规划4.1 0-1 变量的特性4.1.1 投资问题4.1.2 约束条件满足个数问题 写在最后 引言 前文我们介绍了整数规划的一种求解方法——分支定界法&#xff0c;可以求解纯整数和混合整数规划问题。现在我们来学习另一种整数规划求解方法——割平…

Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

&#x1f389;工作中遇到这样一个需求场景&#xff1a;由于ES数据库中历史数据过多&#xff0c;占用太多的磁盘空间&#xff0c;需要定期地进行清理&#xff0c;在一定程度上可以释放磁盘空间&#xff0c;减轻磁盘空间压力。 &#x1f388;在经过调研之后发现&#xff0c;某服务…

MyBatid动态语句且模糊查询

目录 什么是MyBtais动态语句&#xff1f;&#xff1f;&#xff1f; MyBatis常用的动态标签和表达式 if标签 Choose标签 where标签 MyBatis模糊查询 #与$的区别 ​编辑 MyBatis映射 resultType resultMap 什么是MyBtais动态语句&#xff1f;&#xff1f;&#xff1f;…

视频转音频mp3怎么弄?

视频转音频mp3怎么弄&#xff1f;在很多人看来&#xff0c;音频就是视频中的一部分&#xff0c;其实这时是一定道理的&#xff0c;视频是一种包含图像和有声音的多媒体文件&#xff0c;没有声音的视频是不完美的。时代发展到现在&#xff0c;短视频已经融入了我们生活的方方面面…

【日常积累】Linux中vi/vim的使用

概述 vim是由vi发展演变过来的文本编辑器&#xff0c;因其具有语法高亮显示、多视窗编辑、代码折叠、支持插件等功能&#xff0c;由于其功能相比vi来说更加强大&#xff0c;所以在实际工作中的使用更加广泛。 vim工作模式 Vim具有多种工作模式&#xff0c;常用的工作模式有&…

微服务架构2.0--云原生时代

云原生 云原生&#xff08;Cloud Native&#xff09;是一种关注于在云环境中构建、部署和管理应用程序的方法和理念。云原生应用能够最大程度地利用云计算基础设施的优势&#xff0c;如弹性、自动化、可伸缩性和高可用性。这个概念涵盖了许多方面&#xff0c;包括架构、开发、…

Prometheus+Grafana+AlertManager监控Linux主机状态

文章目录 PrometheusGrafanaAlertManager监控平台搭建开始监控Grafana连接Prometheus数据源导入Grafana模板监控Linux主机状态 同系列文章 PrometheusGrafanaAlertManager监控平台搭建 Docker搭建并配置Prometheus Docker拉取并配置Grafana Docker安装并配置Node-Exporter …

Python系统学习1-9-类三之特征

一、封装 数据角度&#xff1a;将一些基本数据类型复合成一个自定义类型。 优势&#xff1a;将数据与对数据的操作相关联。 代码可读性更高&#xff08;类是对象的模板&#xff09;。 行为角度&#xff1a;向类外提供必要的功能&#xff0c;隐藏实现的细节。 优势&#xff…

【VRTK4.0运动专题】手柄控制物体移动和旋转

文章目录 原理预设体将两轴转化为位置向量或角度后&#xff0c;调用运动脚本的方法&#xff0c;对指定的物体进行移动或旋转 步骤1、将轴转化为位置向量或角度&#xff1a; 建轴转化预设体&#xff0c;关联两轴&#xff0c;2、准备带有要用方法的运动脚本&#xff1a; 建功能物…

在线图片怎么转换成PDF?在线图片转换成PDF步骤介绍

文件格式要转化不知道怎么办?想要网上下载文件格式转换软件&#xff0c;但是却不知道下载哪个好?今天小编小编就给大家分享一下靠谱的小圆象PDF转换器工具&#xff0c;想知道这款软件好不好用?在线图片怎么转换成PDF?那就进来看看吧。 在线图片怎么转换成PDF 小圆象PDF转换…

requests模板成功下载,但是不能在pycharm中运行

在做实验的过程中&#xff0c;需要用到requests&#xff0c;但是在pycharm中成功下载&#xff0c;仍然无法使用&#xff0c;找了很久&#xff0c;解决方法如下&#xff1a; 进入win中的命令提示符 下载requests模块 pip install requests输入python显示你的python的基本信息&…

什么是软件压力测试?软件压力测试工具和流程有哪些?

软件压力测试 一、含义&#xff1a;软件压力测试是一种测试应用程序性能的方法&#xff0c;通过模拟大量用户并发访问&#xff0c;测试应用程序在压力情况下的表现和响应能力。软件压力测试的目的是发现系统潜在的问题&#xff0c;如内存泄漏、线程锁、资源泄漏等&#xff0c;…

基于灵动微MM32F3270微控制器的监护仪

监护仪是各类医用电子仪器中应用极为普遍的一种。监护仪不仅可以提高护理工作的效率&#xff0c;更重要的是&#xff0c;它为更全面、更准确的掌握患者病情&#xff0c;提高医疗服务质量提供了更可靠的保障。 基于灵动微MM32F3270微控制器的监护仪&#xff1a; -信号采集&…

Fabric.js 元素选中状态的事件与样式

本文简介 带尬猴&#xff01; 你是否在使用 Fabric.js 时希望能在选中元素后自定义元素样式或选框&#xff08;控制角和辅助线&#xff09;的样式&#xff1f; 如果是的话&#xff0c;可以放心往下读。 本文将手把脚和你一起过一遍 Fabric.js 在对象元素选中后常用的样式设置…

Java IO流(五)Netty实战[TCP|Http|心跳检测|Websocket]

Netty入门代码示例(基于TCP服务) Server端 package com.bierce.io.netty.simple; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGro…

激活函数总结(十七):激活函数补充(PELU、Phish)

激活函数总结&#xff08;十七&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 Parametric Exponential Linear Unit&#xff08;PELU&#xff09;激活函数2.2 Phish激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、…

自平衡性:保持数据结构稳定的关键

自平衡性是一种重要的数据结构属性&#xff0c;它确保在执行插入、删除等操作后&#xff0c;数据结构能够自动进行调整&#xff0c;以保持整体的平衡状态。平衡的数据结构可以提供更快的操作性能&#xff0c;避免极端情况下的低效操作&#xff0c;同时保持树或其他结构的整体稳…