从控制台接收数字并排序输出java_java 从控制台接收若干个整数,排序并输出.如何做?...

展开全部

由于不知道具体有e69da5e6ba903231313335323631343130323136353331333337623366几个整数,总体来说有两种方法,第一种是读取一行,然后把这一行输入转成数组。第二种方法是读到某个标志位(比如-1)结束。代码如下:import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;

import java.io.IOException;

public class BasicInput {

public static void main(String[] args) {

//int[] arr = readLine(); //方法一

int[] arr = readToFlag();//方法二

Arrays.sort(arr);

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

}

public static int[] readLine(){

String str = "";

try {

System.out.println("属于一行整数,中间用空格隔开。");

// 在Java当中,用户输入要通过InputStream(输入流)来获取。

// System.in就是系统的输入流。缺省情况下这个输入流连接到控制台(命令行)。

// InputStreamReader就是用来读取InputStream的类。

InputStreamReader is_reader = new InputStreamReader(System.in);

// 通常使用BufferedReader来读取InputStream中的字符串内容。

// BufferedReader可以一次读取一行。

str = new BufferedReader(is_reader).readLine();

is_reader.close();

} catch (IOException e) {

e.printStackTrace();

}

String [] strArr = str.split(" ");

int [] arr = new int [strArr.length];

for(int i=0;i

arr[i] = Integer.parseInt(strArr[i]);

}

return arr;

}

public static int[] readToFlag(){

List list = new ArrayList();

Scanner input=new Scanner(System.in);

System.out.println("请输入多个数值,输入-1表示输入结束");

int tmp=input.nextInt();//输入一个正整数

while(tmp!=-1){

list.add(tmp);

tmp=input.nextInt();

}

input.close();

int [] arr = new int [list.size()];

for(int i=0;i

arr[i] = list.get(i);

}

return arr;

}

}


版权声明:本文为weixin_42472941原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。