公司方案策划书旺道seo优化软件怎么用
1. 判断邮箱
输入一个电子邮箱,判断是否是正确电子邮箱地址。 正确的邮箱地址:
- 必须包含 @ 字符,不能是开头或结尾
- 必须以 .com结尾
- @和.com之间必须有其他字符
public class Mailbox {/*** 判断邮箱* @param str* @return boolean*/public static boolean isMailbox(String str) {int atIndex = str.indexOf("@");int comIndex = str.indexOf(".com");// 包含 '@' 和 ‘.com’ ,并且不相连if (atIndex < 0 || comIndex < 0) {return false;}if (str.indexOf("@.com") >= 0) {return false;}// '@' 在 ‘.com’ 前面if (atIndex > comIndex) {return false;}// '@' 不在开头, ‘.com’ 在结尾if (str.startsWith("@") || !str.endsWith(".com")) {return false;}// '@' 不重复出现String[] arr = str.split("@");if (arr.length > 2) {return false;}return true;}public static void main(String[] args) {String str = "xxxxxxxxxx@qq.com";System.out.println(isMailbox(str));}
}
2. 生成密码
随机生成一个 6 位的密码,要求:
- 不包含重复字符
- 要有字母和数字
- 不能以数字开头
import java.util.Arrays;
import java.util.Random;public class RandomPassword {private static final String characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%^&*()_-+=`~'\"\\,.<>";/*** 生成 6 位数密码* @return String*/public static String getpassword() {Random random = new Random();String str = new String();int[] arr = new int[6];arr[0] = random.nextInt(52); // 字母范围:a-z(26)和A-Z(26)str += characters.charAt(arr[0]);arr[1] = random.nextInt(10) + 52; // 随机生成数字str += arr[1];for (int i = 4; i >= 1; i--) {int j = random.nextInt(characters.length());Arrays.sort(arr);if (Arrays.binarySearch(arr, i, 6, j) < 0) {str += characters.charAt(j);arr[i - 1] = j;} else {i ++;}}return str;}public static void main(String[] args) {System.out.println(getpassword());}
}
// 上述代码有 bug,数字总在第二位
3. 生成幸运数字
随机生成 20 个 1 ~ 40 之间的不重复幸运数字存储到数组中。 要求:
- 数组中的数字乱序
package kfm.bases.string;import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;public class RandomNumber {static Random random = new Random();public static int[] randomNum() {int[] arr = new int[20];for (int i = 0; i < arr.length; i++) {Arrays.sort(arr);int j = random.nextInt(40) + 1;if (Arrays.binarySearch(arr, arr.length - i, arr.length, j) < 0) {arr[0] = j;} else {i --;}}// 打乱顺序List<Integer> list = Arrays.asList(Arrays.stream(arr).boxed().toArray(Integer[]::new));Collections.shuffle(list);for (int i = 0; i < arr.length; i++) {arr[i] = list.get(i);}return arr;}public static void main(String[] args) {System.out.println(Arrays.toString(randomNum()));}
}
4. 去除重复字符
编写一个程序,去除字符串中的重复字符。
package kfm.bases.string;import java.util.Arrays;public class Duplication {public static String different(String str) {String str1 = "";int[] arr = new int[str.length()];for (int i = 0; i < str.length(); i++) {char j = str.charAt(i);// 获取 ascll 码,用于记录有没有出现int z = str.codePointAt(i);Arrays.sort(arr);// 查找元素有没有出现过if (Arrays.binarySearch(arr, str.length() - i, str.length(), z) < 0) {arr[0] = z;str1 += j;}}return str1;}public static void main(String[] args) {System.out.println(different("121233a44"));}
}
5. 最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
import java.util.Arrays;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) {System.out.println(maxSub("aaaaa"));}
}