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);}
}