String max = a[0];
String min = a[0];这两句改成这样
String max = “”;
String min = “”;要不然会有空指针的,这样改完应该就没问题了,你试试

解决方案 »

  1.   

    import java.io.*;
    class Test{
    public static void main(String args[]) {
    String max = "a";
    String min = "z";
    for(int i=0;i<10;i++){
    try{
    System.out.println("请输入字符串:");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String readline = br.readLine();
    if(max.compareTo(readline)<0){
    max=readline;
    }
    if(min.compareTo(readline)>0){
    min=readline;
    }
    }catch(NumberFormatException e){
    System.out.println("字符串格式输入有误,请重新输入。\n");
    i--;
    }catch(IOException e){}
    }
    System.out.println("最大字符串为:"+max);
    System.out.println("最小字符串为:"+min);
    }
    }代码改成这样,也比较整洁,你说呢?
      

  2.   

    你读取10个字符后,把数组用Arrays.sort排序,第一个就是最小的,最后一个就是最大的!
      

  3.   

    按照你原来的思路修改了代码,注释更重要,请参考package test1; // 请尽早使用IDE书写程序,养成好习惯。包名一般为小写字母import java.io.*;public class MaxAndMin { // 类名一般为大写字母开头    public static void main(String args[]) {
            String a[] = new String[10];
            String max = a[0]; // 执行完max 和 a[0]都为null,即使修改a[0]的值,max还一直是null
            String min = a[0]; // 执行完min 和 a[0]都为null,即使修改a[0]的值,min还一直是null
            for (int i = 0; i < 10; i++) {
                try {
                    System.out.println("请输入字符串:");
                    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                    String readline = br.readLine();
                    a[i] = readline;                if (max==null || max.compareTo(a[i]) < 0) { // 使用变量之前,一定要考虑是否需要判断是否为null
                        max = a[i];
                    }
                    
                    if (min==null || min.compareTo(a[i]) > 0) { // 使用变量之前,一定要考虑是否需要判断是否为null
                        min = a[i];
                    }            } catch (NumberFormatException e) {
                    System.out.println("字符串格式输入有误,请重新输入。\n");
                    i--;
                } catch (IOException e) {            }        }
            System.out.println("最大字符串为:" + max);
            System.out.println("最小字符串为:" + min);    }}
    执行结果:
    请输入字符串:
    123
    请输入字符串:
    234
    请输入字符串:
    345
    请输入字符串:
    456
    请输入字符串:
    567
    请输入字符串:
    678
    请输入字符串:
    789
    请输入字符串:
    890
    请输入字符串:
    901
    请输入字符串:
    012
    最大字符串为:901
    最小字符串为:012