逢7跳过、数组元素求和、判断两数组是否相等、查找元素在数组中的索引
数组元素反转、评委打分、随机产生验证码
public class hellloWorld {
public static void main(String[] args) {
int[] arr ={1, 2, 3, 4, 5, 6,4,4};
//fengqiguo();
//getSum(arr);
int[] arr1={1,2,3,4};
int[] arr2={1,2,4,4};
//boolean result=isEqual(arr1,arr2);//接收结果
//System.out.println(result);
//测试索引
//int ss=searchIndex(arr);
//System.out.println(ss);
//测试重复索引
// int[] indexx=searchIndex2(4,arr);
//
// if(indexx.length==0)
// System.out.println("数组中不存在该元素");
// else
// for (int i = 0; i < indexx.length; i++) {
// System.out.println(indexx[i]);
// }
//测试反转数组
// int[] arr3 ={1, 2, 3, 4, 5, 6,7,8};
int[] swap=Reverse(arr3);
for (int i = 0; i < swap.length; i++) {
System.out.println(swap[i]);
}
//测试评委打分
// int mark=mark();
// System.out.println("成绩为:"+mark);
//验证码测试
generateRandom();
}
public static void fengqiguo(){
//逢7跳过 1-100
/*分析:
1.循环获取1-100之间的每一个数字
2.数值拆分,拆分出十位、个位
3.根据规则加入 if 判断
if (ge==7||shi==7 ||i&7==0)
4.打印出满足要求的数据
*/
for(int i=1;i<=100;i++){
int ge = i%10;
int shi = i/10%10;
if(ge==7 ||shi==7||i%7==0){
System.out.println(i);
}
}
}
//数组求和
public static int getSum(int arr[]){
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
System.out.println("数组求和结果为"+sum);
return sum;
}
//判断两个数组是否相等_长度、内容、顺序完全相同
/*
==:
1.基本数据类型:比较数据值
2.引用数据类型:比较地址值
*/
public static boolean isEqual(int[] arr1,int[] arr2){
//1.比较数组的长度
if(arr1.length !=arr2.length){
return false;
}
//2.比较数组中每一个元素的内容
for (int i = 0; i < arr1.length; i++) {
if(arr1[i]!=arr2[i]){
return false;
}
}
return true;
}
//查找元素在数组中的索引
public static int searchIndex(int arr[]){
/*
需求:
已知一个数组,键盘录入一个数据,查找该数据在数组中的索引,
并在控制台输出索引值,如果没有查到,输出-1
*/
Scanner sc=new Scanner(System.in);
int k=-1;
int a = sc.nextInt();
for (int i = 0; i < arr.length; i++) {
if (a == arr[i]) {
k = i;
break;
}
}
return k;
}
//查找元素索引,考虑重复情况
public static int[] searchIndex2(int a, int[] arr){
int count = 0;
//1.统计要查找的数在数组中的个数
for (int i = 0; i < arr.length; i++) {
if(a==arr[i]){
count++;
}
}
int[] indexx=new int[count] ;
int index =0;
//2.记录地址,把地址记录到数组中,然后统一返回
for (int i = 0; i < arr.length; i++) {
if(a==arr[i]){
indexx[index]=i;
index++;
}
}
return indexx;
}
//数组元素反转1- 数组里面的元素值交换 -方法一
// ^ 异或符号,相同为false,不同为 true
public static int[] Reverse(int[]arr){
int temp=0;
for (int i = 0; i < arr.length/2; i++) {
temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
return arr;
}
//数据反转方法二,定义两个指针
public static int[] swap(int arr[]){
int start=0,end=arr.length-1;
for (;start<end;start++,end--) {
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
return arr;
}
// 评委打分
/*
需求:
六个人打分,分数为0-100之间的整数值
去掉最高和最低,求剩下的平均值
分析:
1.键盘录入六个数字;
2.将六个数字存到数组中,数组动态初始化;
*/
public static int mark(){
//1.录入
int[] arr = new int[6];
Scanner sc=new Scanner(System.in);
System.out.println("输入六个评委打分结果:");
for (int i = 0; i < arr.length; i++) {
System.out.println("输入第"+(i+1)+"位评委打分的结果:");
int score = sc.nextInt();
//提高健壮性-
//判断数据是否合法
if(score>0&&score<=100){
arr[i]=score;
}
else{
System.out.println("输入数据有误,重新输入");
i--;
}
}
//2.求和
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
//3.找到最大
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if(max<arr[i]){
max=arr[i];
}
}
//4.找到最小
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(min>arr[i]){
min=arr[i];
}
}
//5.平均 和-最大-最小 /4
int avg=(sum-min-max)/arr.length-2;
return avg;
}
// 随机产生验证码
public static void generateRandom(){
//将26个字母大小写和数字0-9存入到 数组中
char[] chs = new char[26+26+10];
int index=0;
for(char c='a';c<='z';c++){
chs[index]=c;
index++;
}
for(char c='A';c<='Z';c++){
chs[index]=c;
index++;
}
for(char c='0';c<='9';c++){
chs[index]=c;
index++;
}
//产生验证码
Random r = new Random();
String CheckCode="";
for(int i=1;i<=5;i++){
int randomIndex = r.nextInt(chs.length);
CheckCode+=chs[randomIndex];
}
System.out.println("验证码:"+CheckCode);
}
}