Java,小问题一个!

题目:从键盘输入一系列字符,如:dsafdaew43421dafd#....以#号作为结束标志,求这些字符的最小者!

小弟初学啊,这么一个小问题就整了好久,调试过了,可运行老出现问题,错误提示是数组越界。最后,还是解决不了。有没有哪位高人给指点下啊!

直接给出代码更好啦。

小弟感激不尽!!

在做之前你要理解这个题意:
这些字符的最小者,也就是比较他们的ASCII码值。
和前的位的代码差不多。不过多看看注释。希望你能理解
public static void main(String[] args) {
int min;
try {
int reader;
System.out.println("请输入字符,以\"#\"结束:");
reader = System.in.read(); // 读入第一个字符,并用reader来接收它的ASCII值
min = reader; //假设第一个字符为最小值,把它赋值给min
while (reader != '#') { // 判断读入的字符是否为#
System.out.println(reader);
if (reader < min) { //如果下一个字符的ASCII值比min还小,这个就是最小的并赋值给min
min = reader;
}
reader = System.in.read(); // 读入下一个字符
}
System.out.println("这个字符串中最小的字符为:" + (char) min);
} catch (IOException e) {
e.printStackTrace();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-11
最小者是指他们的ASCII码吗?
String s = "dsafdaew43421dafd#";
char min = s.charAt(0);
int i = 1;
while(s.lenght >= 2 && s.charAt(i) != '#'){
if(min > s.charAt(i)
min = s.charAt(i);
i++;
}
第2个回答  2010-03-11
import java.io.IOException;

public class Test {
public static void main(String[] args) throws IOException {
int reader;
System.out.println("请输入字符,以\"#\"结束:");
reader = System.in.read(); // 读入第一个字符
int min = reader;
while (reader != '#') { // 判断读入的字符是否为#
if (reader < min) {
min = reader;
}
reader = System.in.read(); // 读入下一个字符
}
System.out.println("最小的字符为:" + (char) min);
}
}