双色球-----用数组实现 双色球规则红球33选6,蓝球16选1,不允许重复。 使用Math类的random()方法在1到33内随机产生6个红球号码,每产生一个判断是否已经在数组中存在,不存在则保存于数组,否则重选。再从1到16间随机产生一个蓝球号码
public static void main(String[] args) {
//获取6个随机数添加到数组中,同时判断数组中是否存在该随机数,如果存在再随机生成一个
//第7个随机数正常生成即可
int[] nums = new int[7];
for (int i = 0; i < 6; i++) {
int num = (int) (Math.random() * 99 + 1);
//判断如果不重复就放在数组中,如果重复再产生随机数
while (exists(nums, num)) {
num = (int) (Math.random() * 99 + 1);
}
nums[i] = num;
}
int num = (int) (Math.random() * 16 + 1);
nums[nums.length - 1] = num;
System.out.println("====双色球====");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
}
public static boolean exists(int[] nums, int num) {
for (int i = 0; i < nums.length; i++) {
//遍历数组,如果产生的数和数组一样就true
if (nums[i] == num) {
return true;
}
}
return false;
}
双色球-----用list集合实现
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 6; i++) {
//判断
int num = (int) (Math.random() * 33 + 1);
while (exists(list, num)) {
num = (int) (Math.random() * 33 + 1);
}
//另一种判断方法,调用contains方法判断即可
while (list.contains(num)) {
num = (int) (Math.random() * 33 + 1);
}
//如果不重复就添加到集合中
list.add(num);
}
int num = (int) (Math.random() * 16 + 1);
list.add(num);
System.out.println("=====双色球=====");
/*list.stream().forEach(integer -> {
System.out.print(integer+" ");
});*/
for (int i = 0; i < list.size()-1; i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
System.out.println("蓝色球为:"+list.get(6));
}
public static boolean exists(ArrayList<Integer> list, int num) {
for (int i = 0; i < list.size(); i++) {
if (num == list.get(i)) {
return true;
}
}
return false;
}
面试题:统计字符串中字符出现的次数
public static void main(String[] args) {
String str = "no zuo no die why you try no try no high give me five";
//分割字符串得到n个单词
String[] strings = str.split(" ");
HashMap<Object, Object> hs = new HashMap<>();
for (int i = 0; i < strings.length; i++) {
//看hs中是否存在此单词
String s = strings[i];
if (hs.containsKey(s)) {
//map中已经有该单词了
// 只需要把原来的count取出来+1 再放进去
hs.put(s, (Integer) hs.get(s) + 1);
} else {
//map中没有此元素,直接把1放进去
hs.put(s, 1);
}
}
System.out.println(hs);
}
面试题:判断string字符串问题
public static void main(String[] args) {
//常量池有个特性,放值之前会进行检查
//找一块空间 存放“abcbcd”
String str = "abc";
str = str + "bcd";
//找一块空间 存放“abc” 再放“bcd”
//最后再找一块空间放“abcbcd”
String str2 = "abc" + "bcd";
String str3 = "abcbcd";
//str和str2大概率会不相等,因为str2在常量池里并不会做拼接操作
System.out.println(str == str2); //false
System.out.println(str==str3); //false
System.out.println(str2==str3); //true
}
判断java文件名是否正确,邮箱地址是否正确
要求:文件名必须是.java 结尾 邮箱格式 必须有@ . @必须在.前面
public static void main(String[] args) {
//文件名必须是.java 结尾
System.out.println("----欢迎进入作业提交系统----");
System.out.println("请输入java文件名:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
System.out.println("请输入你的邮箱:");
String email = sc.next();
// //contain的意思是包含,不是结尾的意思,所以不能用这种办法
// boolean b = name.contains(".java");
//
// if (b) {
// System.out.println("文件格式正确");
// } else
// System.out.println("文件格式不正确");
//endsWith (String suffix) 测试此字符串是否以指定的后缀结尾。 也可以用这个方法
int index = name.lastIndexOf(".");
if (index==-1){
System.out.println("文件格式不正确");
}else {
String substring = name.substring(index + 1);//如果不加1,点也会算进去
if (substring.equals("java")){
System.out.println("正确");
}else {
System.out.println("不正确");
}
}
//邮箱格式 必须有@ .
//@必须在.前面
//获取最后一个@的下标
int index1 = email.lastIndexOf("@");
//获取最后一个.的下标
int index2 = email.lastIndexOf(".");
if (index1!=-1&&index2!=-1&&index1<index2){
System.out.println("正确");
}else
//没有@ 输出没有@
//没有. 输出没有.
//@在.后面 输出@必须在.前面
if (index1==-1&&index2==-1){
System.out.println("没有添加@,.");
}else if (index1==-1){
System.out.println("没有添加@");
}else if (index2==-1){
System.out.println("没有添加.");
}else if (index1>index2){
System.out.println("@必须在.后面");
}
}
输入一个字符串,输入一个字符,判断该字符在字符串中出现的次数
public static void main(String[] args) {
System.out.println("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println("请输入要查找的字符:");
String s = sc.next();
HashMap<String, Integer> map = new HashMap<>();
String[] strs = str.split("");
for (int i = 0; i < strs.length; i++) {
String temp = strs[i];
if (map.containsKey(temp)) {
map.put(temp,map.get(temp)+1);
} else {
map.put(temp, 1);
}
}
Integer integer = map.get(s);
if (integer==null){
integer=0;
}
System.out.println(str+" 中包含"+integer+"个"+s);
}