直接看代码:
此程序由用户自行输入数组,不过要按提示去输入;
public class Mmd {
//数组排序
public static void arraySort(int[] array){
int len = array.length;
for(int i=0;i<len;i++){
for(int j=i;j<len;j++){
if(array[i] > array[j]){
int k = array[i];
array[i] = array[j];
array[j] = k;
}
}
}
}
//该方法从一个数组中找出第一个出现5次的数字,没有的话返回零,并标明注解(防止出现5次的数是0)
public static int MoreThanHalfNum_Solution(int [] array) {
//先对数组进行排序
arraySort(array);
//对排序后的数组进行操作
int i=0;
while(i < array.length-4){
if(array[i] == array[i+1] &&
array[i] == array[i+2] &&
array[i] == array[i+3] &&
array[i] == array[i+4]){
return array[i];
}
i++;
}
System.out.println("没有找到!");
return 0;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整型数组:");
String string = in.nextLine();
//将字符串进行拆分,得到一个String类数组(用空格进行数组元素分割)
String[] strings = string.split(" ");
//创建等长度整形数组,进行元素转换
int[] array = new int[strings.length];
//使用Integer.parseInt(...)进行强转
for(int i=0;i<strings.length;i++) {
try {
array[i] = Integer.parseInt(strings[i]);
} catch (Exception e) {
System.out.println("输入异常,请重试!"+e);
//若发现输入异常,直接退出!
System.exit(0);
}
}
in.close();
//此时得到用户输入的整形数组;
System.out.println("第一次出现5次的数是:"+MoreThanHalfNum_Solution(array));
}
}
运行此代码,若输入格式正确,则会继续判断,若输入格式不正确,直接退出,请重试!
例如输入的数组中含有字母: