Java系列:Scanner类和数组

Java中的Scanner类
Scanner类,可以获取用户的输入信息,创建Scanner对象的方法:

Scanner sc = new Scanner(System.in);
    // hasNextLine():判断是否还有输入
    if (sc.hasNextLine()) {
        //nextLine:获得用户输入的信息,next()方法也可以,但是输入的不能有空格,而nextLine()可以获取空格;
        String str2 = sc.nextLine();
        System.out.println("输入的数据为:" + str2);
    }

Java中的数组
类型一致的一组数据集合,长度一旦定义不可改变,
数组有三种创建方式:

int[] arry1 = new int[10];
int[] arry = new int[]{1,2,3};
//静态初始化
int[3] arry2 = {1,2,3};

数组元素的访问:

  1. 数组长度:长度使用属性访问,arry.length获取数组的长度;
  2. 数组下标:范围:0~length-1,超范围访问会出现下标越界异常;
  3. 使用[index]访问数组元素:arry2[1]就是2;

数组默认的初始值:根据数组类型不同,各个类型的初始值都不一样;

类型初始值
整数类型0
浮点类型0.0
布尔类型false
字符类型\u0000(显示无效果)
String类型null

列子:
1、张三去参加青年歌手大奖赛,有10个评委打分,求平均分(去掉一个最高一个最低);

public class AverageScore {
  public static void main(String[] args){
  	//定义一个double类型的数组
    double[] num=new double[]{99,97,96,95,94,92,91,90,88,100};
    //sort:Arrays中的方法,对一个数组进行排序,从小到大;
    Arrays.sort(num);
    //copyOfRange:Arrays中的方法,拷贝一个数组中指定位置的值,1代表起始位置,9代表终止位置(包含开头不包含结尾)
    double[] NewNum=Arrays.copyOfRange(num,1,9);
    double average=0;//平均值
    double sum=0;//总成绩
    for(int I=0;i<NewNum.length;i++){
      sum=sum+NewNum[I];
    }
    average=sum/NewNum.length;
    System.out.println(average);
  }
 
}

2、利用选择排序对数据进行降序排序;

public class Select_Sort {
	/*
	*原理:在一组数组里面定义一个最大数值的下标,让int[index]和其它数值挨个比较,选出最大的值int[i],
	*并把该最大值的下标i和我们原先设置的index进行置换,即index=i;并且把他们两个的位置进行互换,依次类推,直到完全排序好
	*/
    public static void main(String[] args){
      int[] num=new int[]{4,3,1,6,9,5};
      ChooseSort(num);
    }
    public static void ChooseSort(int[] array){
      for(int i=0;i<array.length;i++){
        int index=i;//定义当前下标为最小值下标
        for(int j=i+1;j<array.length;j++){
          if(array[j]<array[index]){//a[I]<a[index] 从下到大排序
            index = j;
          }
        }

        int temp = array[index];//交换
        array[index] = array[i];
        array[i] = temp;
      }
      //foreach循环
      for (int e:array){
        System.out.print(e+"\t");
      }
    }
  }

3、读入三个整数,并输出最大值(结合数组);

/*
 * 读入三个整数,输出这三个整数中最大的一个.
 */
public class MaxOrMin {
    public static void main(String[] args) {
        System.out.println("请输入3个整数:");
        Scanner s = new Scanner(System.in);
        int[] Arr = new int[3];
        int i = 0;
        // 循环接收输入的数据
        for(i = 0; i < Arr.length(); i++){ 
            Arr[i] = s.nextInt();
        }
        // 对数据进行判断
        if(Arr[0] >= Arr[1] && Arr[0] >= Arr[2] )
            System.out.println("最大整数:" + Arr[0]);
        else if(Arr[1] >= Arr[0] && Arr[1] >= Arr[2] )
            System.out.println("最大整数:" + Arr[1]);
        else
            System.out.println("最大整数:" + Arr[2]);
    }
}

4、读入一一个表示年份的整数,判断这一年 是否是闰年;

/*
 *如何判断-一个年份是否是闰年:
 *1)如果这个年份能够被4整除,且不能被100 整除,则这一年是闰年。例如,1996年是闰年,而相应的,1993年就不是闰年。
 *2)如果这个年份能够被100整除,则这个数必须要能被400整除,才是闰年。例如,2000 年是闰年,1900年不是闰年。
 */
public class RunNian {
    public static void main(String[] args) {
        System.out.println("请输入一个年份:");
        int Age;
        while(true){
            Scanner s = new Scanner(System.in);
            Age = s.nextInt();
            
            if(Age % 4 == 0 && Age % 100 != 0){ // 被4整除,且不能被100 整除
                System.out.println(Age + "年是闰年");
                continue;
            }
            else if(Age % 100 == 0 && Age % 400 == 0){ // 被100整除,且被400整除
                System.out.println(Age + "年是闰年");
                continue;
            }
            else
                System.out.println(Age + "年不是闰年");
        }
    }
}

Java基础注意事项:

  • Java程序严格区分大小写;
  • 类名,每个单词首字母必须大写;
  • 每一个Java语句必须以分号结束;
  • int a[] = new int[10]; 语法可以但最好写成int[] a = new int[10],中括号写在数组名前面;
  • Java中所有范围参数都是包含开头,不包含结束,如random.nextInt(100),生成0到100之间的随机数,不包括100本身;
  • 字符串按编码大小排序;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值