Java练习——输入n个数,存入数组,进行排序输出

题目:输入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型

你可能感兴趣的:(Java,java)