现在要求使用Scanner进行输入啊,所以先用Scanner
调用个方法即可输出排序,不想写了
还有一些细节没有完成
1.如何做到输入任意个数的数字进行排序
2.如何在中间输错数据格式的时候,显示输入错误,换行,继续输入数据
package com;
import java.util.Scanner;
public class T7 {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
int data[] = new int[3];
for(int x = 0 ;x<data.length;){
System.out.print("请输入第"+ x +"数字:");
if(scan.hasNextInt()){
data[x] = scan.nextInt();
x++;
}else{
System.exit(1);
}
}
for(int x = 0;x<data.length;x++){
for(int y = 0;y<data.length-1;y++){
int temp = 0;
if(data[y]>data[y+1]){
temp = data[y];
data[y] = data[y+1];
data[y+1] = temp;
}
}
}
int min = data[0] ;
int max = data[data.length-1] ;
System.out.println("最大值为:"+ max);
System.out.println("最小值为:"+ min);
}
}
普通的Syste.in输入
package com;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
public class T2{
public static void main(String[] args) throws IOException {
//System.in为InputStream类实例
InputStream input = System.in;
//开辟空间接收数据,最大不要超过2048
byte data[]=new byte[1024];
System.out.print("please input the numbers:");
input.read(data);
String str=new String(data);//将byte转为String
ssort(str);
}
public static String ssort(String s){
//进行字符串的拆分split()方法
String result[] = s.split(",");
//将String数组转为int数组,长度相同
int in[]=new int[result.length];
//将数组每个数据逐个变换,其中最后要滤掉空格,否则会有未知错误
for (int i=0;i<result.length ;i++ ) {
in[i]=Integer.parseInt(result[i].trim());
}
// Arrays.sort(in);//用java.util.Arrays.sort()方法
//自己写一个从小到大排序方式
for (int x=0;x<in.length ;x++ ) {
for (int y=0;y<in.length-1 ;y++ ) {
if (in[y]>in[y+1]) {
int t=in[y];
in[y]=in[y+1];
in[y+1]=t;
}
}
}
//打印数组内容
for (int x=0;x<in.length ;x++ ) {
System.out.print(in[x]+",");
}
return s;
}
}