【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;以便在有限时间或资源内找…

时间复杂度与空间复杂度

时间复杂度 时间复杂度是衡量算法运行速度的指标。 常数阶 O(1) 不论算法代码有多少行&#xff0c;只要其中没有循环、递归&#xff0c;按前文所介绍计算方法&#xff0c;其时间复杂度都是Ο(1)。 func calculate(_ num1: Int, _ num2: Int) -> Int {let sum num1 num…

AUTOSAR规范与ECU软件开发(实践篇)5.5 基于ISOLAR-A的系统级设计与配置方法(上)

目录 前言 1 系统配置输入文件创建与导入 2、 Composition SWC建立 前言 如前所述, AUTOSAR支持整车级别的软件架构设计, 开发人员可以进行整车级别的软件组件定义, 再将这些软件组件分配到各个ECU中, 这就是AUTOSAR系统级设计需要完成的主要任务。 下面结合AUTOSAR方法论…

【管理运筹学】第 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;某服务…

[Ubuntu 20.04 PC] 安装C-Kermit:一个开源串口通信软件

在计算机科学领域,串口通信一直是非常重要的一环。而C-Kermit作为一款强大而灵活的开源串口通信软件,广泛应用于UNIX、Linux和Windows等操作系统中。本文将介绍C-Kermit的基本原理、特点以及如何使用它进行串口通信。 一、C-Kermit的基本原理 C-Kermit是由C语言实现的,旨在…

MyBatid动态语句且模糊查询

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

TensorFlow 介绍

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发。它支持多种机器学习和深度学习算法&#xff0c;包括神经网络、卷积神经网络、循环神经网络等。TensorFlow 利用数据流图的形式来表达计算&#xff0c;将输入数据和计算操作表示为节点&#xff0c;建立 TensorF…

2023-08-23力扣每日一题

链接&#xff1a; 1782. 统计点对的数目 题意&#xff1a; 给n个点和m条无向边&#xff08;可重复&#xff09;&#xff0c;q个查询 定义edge[a]为一个点是a的边数量&#xff0c;定义ret[a,b]是edge[a]edge[b]-&#xff08;a与b的边&#xff09; q个查询q个答案&#xff0…

视频转音频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;…