一个从键盘读入数字并排序的程序
2007-12-26 16:50
197 查看
一个兄弟问我要的,我以为很简单,用DataInputStream类中的readInt(),结果发现读出的是很奇怪整数(是将四个个ASCII码合并成的int,真不知道这个有什么用。),用System.in.readLine()发现末尾有回车,不是很容易和结束标志对比并退出循环,被输入流搞惨了,:(。搞了好一阵子,才编了一个较满意的东东,留个纪念,呵呵:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class XJSort {
//判断字符串是否为数字
boolean isNumber(String str) {
Pattern pattern = Pattern.compile("//d*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
public static void main(String[] args) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int[] numbers = new int[20];
int iCount = 0;
String s;
XJSort ins = new XJSort();
try {
//从键盘读入整数,如果为-1就退出循环
while (!(s = in.readLine()).equals("-1")) {
if (ins.isNumber(s)) {
int y = Integer.parseInt(s); //将字符串转换成整数
numbers[iCount] = y;
iCount++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
Arrays.sort(numbers, 0, iCount); //排序
for (int i = 0; i < iCount; i++) //将排序数组打印出来
System.out.println(numbers[i]);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class XJSort {
//判断字符串是否为数字
boolean isNumber(String str) {
Pattern pattern = Pattern.compile("//d*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
public static void main(String[] args) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int[] numbers = new int[20];
int iCount = 0;
String s;
XJSort ins = new XJSort();
try {
//从键盘读入整数,如果为-1就退出循环
while (!(s = in.readLine()).equals("-1")) {
if (ins.isNumber(s)) {
int y = Integer.parseInt(s); //将字符串转换成整数
numbers[iCount] = y;
iCount++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
Arrays.sort(numbers, 0, iCount); //排序
for (int i = 0; i < iCount; i++) //将排序数组打印出来
System.out.println(numbers[i]);
}
}
相关文章推荐
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字就不输出
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果是大写字符,就输出对应的小写字符,如果是数字不输出
- java程序:在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置。怎么写啊?
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数, 并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同, 例如12121、3
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大写字符转换为小写,将小写字符转换为大写(别忘了cctype函数系列)
- 编写一个程序,最多将10个donation值读入到一个double数组中。程序遇到非数字输入时将结束输入,并报告这些数字的平均值以及数组中有多少个数字大于平均值。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出
- 一个python小程序,从文本文件中读取每行的两组数字,进行排序后输出.
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出
- .编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出
- 通过编写递归函数,编写c程序从键盘中输入一个数字和计算符号,算出该数字的和或者是积
- 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制
- //1.编写代码模拟三次密码输入的场景。//2.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt