题目:输入n个数,存入数组,进行排序输出
package paixu;
import java.util.Scanner;
public class paixu {
public static void main(String[] args)
{
int z;
System.out.println("请输入n个需要排序的数:(请以 ,隔开)");
Scanner input=new Scanner(System.in);
String a=input.nextLine();//将所有数字以字符串的形式输入,字符串可以自动转为字符数组(见课本)
String [] p=a.split(",");//split()函数 要求前后类型匹配,(分割完不一定说就是字符)
//这个分割符严格区分中英文
//这里数组直接元素,进行数组初始化
int []shu=new int[p.length];//创建数组 语法:类型名[] 数组名=new 类型名[长度]
//强调:Java中要求在声明数组的方括号内不允许指定数组长度
for(int i=0;i<p.length;i++)
{
shu[i]=Integer.parseInt(p[i]);//将字符串型强制转为其他类型 语法:类型名.parse类型名(变量名);
//这里将字符串型强制转换为int类型
}
System.out.println("原序列为:");
for(int i=0;i<shu.length;i++)
{
System.out.printf("%4d",shu[i]);
}
System.out.printf("\n");
for(int i=1;i<=shu.length;i++)//记录排序次数,总计
{
for(int j=0;j<shu.length-1;j++)//从头到尾每两个数进行比较,然后交换,为防止数组越界,将j-1与j进行比较
{ //或者如目前代码所示,不能超过length-1,因为数组下标最大为length-1;
if(shu[j]>shu[j+1])
{
z=shu[j+1];
shu[j+1]=shu[j];
shu[j]=z;
}
}
}
System.out.println("排序后序列为:");
for(int i=0;i<shu.length;i++)
{
System.out.printf("%4d",shu[i]);
}
}
}
重难点:
(1)Java中数组创建:
创建数组有3种方法:
一、声明并赋值
语法:类型名[] 数组名={…};
二、先声明在创建
语法:类型名[] 数组名;
数组名=new 类型名[长度];
三、声明的时候同时创建
语法:
类型名[] 数组名=new 类型名[长度];
类型名 数组名[]=new 类型名[长度];
注意:
1、创建多维数组时,new后面的第一个方括号中的元素数量总不能省略(数组长度不能省略)
2、“new 数据类型[]{}”创建数组时,其中花括号可以省去,但要在“[ ]”中填写数组的个数
3、数组在声明时不能被赋值
4、Java中要求在声明数组的方括号内不允许指定数组长度
(2)在执行排序遍历时,一定要注意下标越界的问题,数组下标最大值为:length-1
(3)字符串型转换为其他类型:
语法:类型名.parse类型名(变量名);
例:string str=“12345”;
int a=Integer.parseInt(str);
转换为整型
float b=Float.parseFloat(变量名);
转换为float型