package com.wei.domain;
import java.util.InputMismatchException;
import java.util.Scanner;
public class DataManger {
public static void main(String[] args) {
DataManger dm=new DataManger();
Scanner sc=new Scanner(System.in);
int input;
int[] a=null;
int n,k;
lo://循环标号
while(true){
dm.notice();
System.out.println("请选择您要进行的操作:");
input = sc.nextInt();
switch (input){
case 1:
//插入数据 插入新的数据,留下来一个数据空地 后面进行增添数据
a= dm.insertData();
System.out.println("插入的数据为:");
//显示数据
dm.queryData(a, a.length-1);//留一个数据空间
break;
case 2:
//显示所有数据,如果没有数据,查询为零
if (a!=null){
System.out.println("数组元素为:");
if (a[a.length-1]==0){//数组最后一个元素为0 就不显示最后一个元素,还没有添加
dm.queryData(a, a.length-1);
}else{
dm.queryData(a, a.length);
}
}else{
System.out.println("数组还没有元素!请重新操作!");
}
break;
case 3:
//在指定位置上插入数据
if (a!=null){
System.out.println("请输入要插入的数字:");
try{
n=sc.nextInt();
System.out.println("请输入要插入的位置:");
k=sc.nextInt();
dm.insertAtArray(a,n,k);
System.out.println("插入成功,新数据为:");
dm.queryData(a, a.length);
}catch (InputMismatchException e){
System.out.println("输入的数据格式有误,不能有非数字!");
sc.next();
}
}else{
System.out.println("还没有在数组中插入数据,请重新选择操作");
}
break;
case 4:
//查询能被3整除的数字,没有插满就进行查询该方法,会出现一个0,但是没有解决掉!!!!
if(a!=null){
System.out.println("能被3整除的数字为:");
if (a.length==10){
dm.divThree(a);
}else{
for (int i=0;i< a.length-1;i++){
if (a[i]%3==0){
System.out.print(a[i]+"\t");
}
}
System.out.println();
}
}else{
System.out.println("还没有在数组中插入数据,请重新选择操作");
}
break;
case 5:
System.out.println("已经退出,感谢你的使用!");
break lo;
//退出
}
}
}
//准备一个数组,长度为10 向其中插入9个数据
public int[] insertData(){
int[] a=new int[10];
Scanner sc=new Scanner(System.in);
//少接收一个数据,为在指定位置处插入数据做准备,因为数组的长度是固定的,想要插入数据就要留一定空间
for (int i=0;i<a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数据:");
try{
a[i]=sc.nextInt();//为了保证插入的数据时整数,而不是其他的类型,要进行过滤
}catch (InputMismatchException e){
System.out.println("输入的数据格式有错误,只能输入整数!");
sc.next();
}
}
return a;
}
//接收数据,插入一个数字
//n是要插入的数据,k是要插入的位置,从0开始
public void insertAtArray(int[] a,int n,int k){
for (int i=a.length-1;i>k;i--){
a[i]=a[i-1];//数组元素往后移动,然后把插入的位置挪出空地来,然后插入新的数据!
}
a[k]=n;//地方挪出拉了,进行插入新数据的操作!
}
//查看展示数组数据
public void queryData(int[] a,int length){
for (int i=0;i<length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
//输出能3整除的数字
public void divThree(int[] a){//如果直接插入9个数字,还有一个数字没有插入,那么就开始执行该方法时,会有一个最后的0出来
//防止这个事情发生,必须要判断数组是否完整
for (int i=0;i< a.length;i++){
if (a[i]%3==0){
System.out.print(a[i]+"\t");
}
}
System.out.println();
}
//展示信息方法
public void notice(){
System.out.println("*******************************************");
System.out.println(" 1.插入数据");
System.out.println(" 2.显示所有的数据");
System.out.println(" 3.在指定位置处插入数据");
System.out.println(" 4.查询能被3整除的数据");
System.out.println(" 5.退出");
System.out.println("********************************************");
}
}
The form of output in the console is like this:
I hope that beginners will use this to practice their hands!