4个回答
展开全部
实现思路:就是输入的数字之间有固定的规则,之后读取后,依次进行大小比较,之后直到排序结束,输出结果即可:
import java.util.Scanner;
public class ArrangedNumbers {
Integer arryNum[];
int count = 0;/* 统计数字 */
boolean judgeIsNum = true;
StringBuffer stringbuffer = new StringBuffer();
Scanner scanner = new Scanner(System.in);
String character;
int memoryNum;
/**
* 任意输入字符
*
* @return 返回输入的内容
*/
// public String inputNum() {
// return null;
// }
/**
* 判断为数字
*/
public void judgmentFigures() {
while (judgeIsNum) {
System.out.println("请任意输入数字,以空格间隔,以回车结束!");
character = scanner.nextLine();
char[] figures = character.toCharArray();
for (int i = 0; i < figures.length; i++) {
if (!(figures[i] >= '1' && figures[i] <= '9')
&& figures[i] != 32) {
judgeIsNum = true;
break;
}
judgeIsNum = false;
}
if (!judgeIsNum)
stringbuffer.append(character);
}
String inputContent = stringbuffer.toString();
String[] numbers = inputContent.split("\\s+");
arryNum = new Integer[numbers.length];
for (int i = 0; i < numbers.length; i++) {
try {
memoryNum = Integer.parseInt(numbers[i]);
arryNum[count] = new Integer(memoryNum).intValue();
count++;
} catch (Exception e) {
/* 如果不出现异常,则说明肯定是数字 */
}
}
}
/**
* 对数字进行排序
*/
public void compareNum() {
for (int i = 0; i < arryNum.length; i++) {
for (int j = 0; j < arryNum.length - i - 1; j++) {
if (arryNum[j] > arryNum[j + 1]) {
Integer temp = arryNum[j];
arryNum[j] = arryNum[j + 1];
arryNum[j + 1] = temp;
}
}
}
}
/**
* 按升序排列输出
*/
public void outputNum() {
System.out.println("按升序排序:");
for (int i = 0; i < arryNum.length; i++) {
System.out.println(arryNum[i]);
}
}
}
//package com.color.program;
public class JJArrangedNumbers {
public static void main(String args[]) {
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
arrangeNumbers.judgmentFigures();
arrangeNumbers.compareNum();
arrangeNumbers.outputNum();
}
}
--------运行结果-------
请任意输入数字,以空格间隔,以回车结束!
123 4 5 6 7 7,23
请任意输入数字,以空格间隔,以回车结束!
2 e adf 3 4
请任意输入数字,以空格间隔,以回车结束!
5 6 6 76 7
按升序排序:
5
6
6
7
76
import java.util.Scanner;
public class ArrangedNumbers {
Integer arryNum[];
int count = 0;/* 统计数字 */
boolean judgeIsNum = true;
StringBuffer stringbuffer = new StringBuffer();
Scanner scanner = new Scanner(System.in);
String character;
int memoryNum;
/**
* 任意输入字符
*
* @return 返回输入的内容
*/
// public String inputNum() {
// return null;
// }
/**
* 判断为数字
*/
public void judgmentFigures() {
while (judgeIsNum) {
System.out.println("请任意输入数字,以空格间隔,以回车结束!");
character = scanner.nextLine();
char[] figures = character.toCharArray();
for (int i = 0; i < figures.length; i++) {
if (!(figures[i] >= '1' && figures[i] <= '9')
&& figures[i] != 32) {
judgeIsNum = true;
break;
}
judgeIsNum = false;
}
if (!judgeIsNum)
stringbuffer.append(character);
}
String inputContent = stringbuffer.toString();
String[] numbers = inputContent.split("\\s+");
arryNum = new Integer[numbers.length];
for (int i = 0; i < numbers.length; i++) {
try {
memoryNum = Integer.parseInt(numbers[i]);
arryNum[count] = new Integer(memoryNum).intValue();
count++;
} catch (Exception e) {
/* 如果不出现异常,则说明肯定是数字 */
}
}
}
/**
* 对数字进行排序
*/
public void compareNum() {
for (int i = 0; i < arryNum.length; i++) {
for (int j = 0; j < arryNum.length - i - 1; j++) {
if (arryNum[j] > arryNum[j + 1]) {
Integer temp = arryNum[j];
arryNum[j] = arryNum[j + 1];
arryNum[j + 1] = temp;
}
}
}
}
/**
* 按升序排列输出
*/
public void outputNum() {
System.out.println("按升序排序:");
for (int i = 0; i < arryNum.length; i++) {
System.out.println(arryNum[i]);
}
}
}
//package com.color.program;
public class JJArrangedNumbers {
public static void main(String args[]) {
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
arrangeNumbers.judgmentFigures();
arrangeNumbers.compareNum();
arrangeNumbers.outputNum();
}
}
--------运行结果-------
请任意输入数字,以空格间隔,以回车结束!
123 4 5 6 7 7,23
请任意输入数字,以空格间隔,以回车结束!
2 e adf 3 4
请任意输入数字,以空格间隔,以回车结束!
5 6 6 76 7
按升序排序:
5
6
6
7
76
展开全部
main方法:
String number;
int arrayint[10000];
int change;
System.out.println("Please inout the sum number:");
System.in.readln(number);
int sum=Integer.parseint(number.toString());
//初始化数组
for(int i=0;i<sum;i++)
{
//输入
}
//排序
for(int i=0;i<sum-1;i++)
{
for(int j=i+1;j<sum;j++)
{
if(arrayint[j]<arrayint[i])
{
change=arraint[j];
arrayint[j]=arrayint[i];
array[i]=change;
}
}
}
//排序后显示的我就不做了,自己做吧
//身边没有开发环境,方法差不多是这样,这个算法效率不高,但是好理解,你拿去试试吧
String number;
int arrayint[10000];
int change;
System.out.println("Please inout the sum number:");
System.in.readln(number);
int sum=Integer.parseint(number.toString());
//初始化数组
for(int i=0;i<sum;i++)
{
//输入
}
//排序
for(int i=0;i<sum-1;i++)
{
for(int j=i+1;j<sum;j++)
{
if(arrayint[j]<arrayint[i])
{
change=arraint[j];
arrayint[j]=arrayint[i];
array[i]=change;
}
}
}
//排序后显示的我就不做了,自己做吧
//身边没有开发环境,方法差不多是这样,这个算法效率不高,但是好理解,你拿去试试吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List<Integer> nums=new ArrayList<Integer>();
Scanner input=new Scanner(System.in);
System.out.println("输入数字:(按0结束)");
int i=0;
while(true){
System.out.print("第"+(++i)+"个数字:");
int num=input.nextInt();
if(num!=0){
nums.add(num);
}else{
break;
}
}
Collections.sort(nums);
System.out.println("排序后:");
for (Integer in : nums) {
System.out.println(in);
}
Scanner input=new Scanner(System.in);
System.out.println("输入数字:(按0结束)");
int i=0;
while(true){
System.out.print("第"+(++i)+"个数字:");
int num=input.nextInt();
if(num!=0){
nums.add(num);
}else{
break;
}
}
Collections.sort(nums);
System.out.println("排序后:");
for (Integer in : nums) {
System.out.println(in);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询