用java编写输入数字,排序输出
/***任意输入东西,以"空格"间隔*当输入不是数字时,重新输入*输入正确后,用回车结束输入的数字*最后升序输出**@authorYang*@version$Revisi...
/**
*任意输入东西,以"空格"间隔
*当输入不是数字时,重新输入
*输入正确后,用回车结束输入的数字
*最后升序输出
*
* @author Yang
* @version $Revision: 1.2 $(版本号) $Date: 2007/11/22 09:55:55 $
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*任意输入东西,以"空格"间隔
*当输入不是数字时,重新输入
*输入正确后,用回车结束输入的数字
*最后升序输出
*
*@author Yang
*/
public class JJArrangedNumbers
{
public static void main(String args[])
{
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
arrangeNumbers .inputNum();
arrangeNumbers .judgmentFigures();
arrangeNumbers .compareNum();
arrangeNumbers .outputNum();
}
}
/**
*任意输入数字,并按升序排列输出
*
*@author Yang
*/
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()
{
System.out.println("请任意输入数字,以空格间隔,以回车结束!");
character = scanner.nextLine();
return character;
}
/**
*判断为数字
*/
public void judgmentFigures()
{
while(judgeIsNum)
{
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+");
for (int i=0;i<numbers.length;i++)
{
try
{
memoryNum=Integer.parseInt(numbers[i]);
count++;
}
catch(Exception e)
{
/*如果不出现异常,则说明肯定是数字*/
}
}
arryNum = new Integer[count];
int c=0;
arryNum[c]= new Integer(memoryNum).intValue();
}
/**
*对数字进行排序
*/
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]);
}
}
}
编译是对的,一个数字可以执行,但输入如:12 34 1 2时就不能执行 展开
*任意输入东西,以"空格"间隔
*当输入不是数字时,重新输入
*输入正确后,用回车结束输入的数字
*最后升序输出
*
* @author Yang
* @version $Revision: 1.2 $(版本号) $Date: 2007/11/22 09:55:55 $
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*任意输入东西,以"空格"间隔
*当输入不是数字时,重新输入
*输入正确后,用回车结束输入的数字
*最后升序输出
*
*@author Yang
*/
public class JJArrangedNumbers
{
public static void main(String args[])
{
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
arrangeNumbers .inputNum();
arrangeNumbers .judgmentFigures();
arrangeNumbers .compareNum();
arrangeNumbers .outputNum();
}
}
/**
*任意输入数字,并按升序排列输出
*
*@author Yang
*/
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()
{
System.out.println("请任意输入数字,以空格间隔,以回车结束!");
character = scanner.nextLine();
return character;
}
/**
*判断为数字
*/
public void judgmentFigures()
{
while(judgeIsNum)
{
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+");
for (int i=0;i<numbers.length;i++)
{
try
{
memoryNum=Integer.parseInt(numbers[i]);
count++;
}
catch(Exception e)
{
/*如果不出现异常,则说明肯定是数字*/
}
}
arryNum = new Integer[count];
int c=0;
arryNum[c]= new Integer(memoryNum).intValue();
}
/**
*对数字进行排序
*/
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]);
}
}
}
编译是对的,一个数字可以执行,但输入如:12 34 1 2时就不能执行 展开
展开全部
/**
* 判断为数字
*/
public void judgmentFigures() {
while (judgeIsNum) {
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 judgmentFigures() {
while (judgeIsNum) {
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) {
/* 如果不出现异常,则说明肯定是数字 */
}
}
}
存在问题,已经修改,原因是只对数组第一个元素初始化
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询