用java编写任意输入判断为数字,排序输出
importjava.io.BufferedReader;importjava.util.Scanner;/***任意输入东西,以"空格"间隔,当输入不是数字时,提示重新...
import java.io.BufferedReader;
import java.util.Scanner;
/**
*任意输入东西,以"空格"间隔,当输入不是数字时,提示重新输入,输入正确后,用回车结束输入的数字,最后升序输出
*/
public class JJArrangedNumbers
{
public static void main(String args[])
{
new ArrangedNumbers();
}
}
/**
*任意输入数字,并按升序排列输出
*/
class ArrangedNumbers
{
char arryNum[] = null;
int count = 0;
public ArrangedNumbers()
{
this.InputNum();
this.CompareNum();
this.OutputNum();
}
/**
*任意输入字符,并判断为数字
*/
public void InputNum()
{
boolean JudgeIsNum = true;
Scanner in=new Scanner(System.in);
while (JudgeIsNum)
{
System.out.println("请任意输入数字,并且用“回车符”结束。");
String character=in.nextLine();
String[] space=character.split(" ");//用一个空格分隔。
for (int j = 0; j < character.length(); j++)
{
if (!(character.charAt(j) >= 48 && character.charAt(j) <= 57))
{
System.out.println("您输入的不是数字!请重新输入.");
JudgeIsNum = true;
break;
}
else
{
JudgeIsNum = false;
}
}
if (!JudgeIsNum)
{
for(int i=0;i<character.length();i++)
{
if(Character.isDigit(character.charAt(i)))
{
count++;
}
}
int data = Integer.parseInt(character);
System.out.println("您输入的数字是:" + data);
StringBuffer sb = new StringBuffer(String.valueOf(data));
arryNum = sb.toString().toCharArray();
}
}
}
/**
*对数字进行比较
*/
public void CompareNum()
{
for (int k=0;k<=count-1;k++)
{
for (int a=k+1;a<=count-1;a++)
{
char t;
if (arryNum[k]>arryNum[a])
{
t=arryNum[k];
arryNum[k]=arryNum[a];
arryNum[a]=t;
}
}
}
}
/**
*按升序排列输出
*/
public void OutputNum()
{
System.out.println("按升序排序:");
for (int k=0;k<=count-1;k++)
{
System.out.println("arryNum["+k+"]="+ arryNum[k] );
}
}
}
我输入12 34 56仍然提示出错
如何才能实现:输入:12 1 4 56
输出:1
4
12
56
你可以写出来吗? 展开
import java.util.Scanner;
/**
*任意输入东西,以"空格"间隔,当输入不是数字时,提示重新输入,输入正确后,用回车结束输入的数字,最后升序输出
*/
public class JJArrangedNumbers
{
public static void main(String args[])
{
new ArrangedNumbers();
}
}
/**
*任意输入数字,并按升序排列输出
*/
class ArrangedNumbers
{
char arryNum[] = null;
int count = 0;
public ArrangedNumbers()
{
this.InputNum();
this.CompareNum();
this.OutputNum();
}
/**
*任意输入字符,并判断为数字
*/
public void InputNum()
{
boolean JudgeIsNum = true;
Scanner in=new Scanner(System.in);
while (JudgeIsNum)
{
System.out.println("请任意输入数字,并且用“回车符”结束。");
String character=in.nextLine();
String[] space=character.split(" ");//用一个空格分隔。
for (int j = 0; j < character.length(); j++)
{
if (!(character.charAt(j) >= 48 && character.charAt(j) <= 57))
{
System.out.println("您输入的不是数字!请重新输入.");
JudgeIsNum = true;
break;
}
else
{
JudgeIsNum = false;
}
}
if (!JudgeIsNum)
{
for(int i=0;i<character.length();i++)
{
if(Character.isDigit(character.charAt(i)))
{
count++;
}
}
int data = Integer.parseInt(character);
System.out.println("您输入的数字是:" + data);
StringBuffer sb = new StringBuffer(String.valueOf(data));
arryNum = sb.toString().toCharArray();
}
}
}
/**
*对数字进行比较
*/
public void CompareNum()
{
for (int k=0;k<=count-1;k++)
{
for (int a=k+1;a<=count-1;a++)
{
char t;
if (arryNum[k]>arryNum[a])
{
t=arryNum[k];
arryNum[k]=arryNum[a];
arryNum[a]=t;
}
}
}
}
/**
*按升序排列输出
*/
public void OutputNum()
{
System.out.println("按升序排序:");
for (int k=0;k<=count-1;k++)
{
System.out.println("arryNum["+k+"]="+ arryNum[k] );
}
}
}
我输入12 34 56仍然提示出错
如何才能实现:输入:12 1 4 56
输出:1
4
12
56
你可以写出来吗? 展开
2007-11-16
展开全部
要求的功能很容易实现的,用不了那么复杂的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询