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};
数组元素的访问:
- 数组长度:长度使用属性访问,arry.length获取数组的长度;
- 数组下标:范围:0~length-1,超范围访问会出现下标越界异常;
- 使用[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本身;
- 字符串按编码大小排序;