从键盘输入10个字符串   存入数组a中,然后输出这10个字符串中最大字符串和最小字符串。

qq_16431129 2014-06-11 07:14:08
package Test1;
import java.io.*;


public class maxandmin {
public static void main(String args[]) {
String a[]=new String[10];
String max = a[0];
String min =a[0];
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.compareTo(a[i])<0){
max=a[i];

}
if(min.compareTo(a[i])>0){
min=a[i];
}

}
catch(NumberFormatException e)
{
System.out.println("字符串格式输入有误,请重新输入。\n");
i--;
}
catch(IOException e){

}

}
System.out.println("最大字符串为:"+max);
System.out.println("最小字符串为:"+min);

}



}
为什么出不来结果呢??输入有问题??
...全文
2164 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Clear_Shine 2014-06-13
  • 打赏
  • 举报
回复
按照你的思路,二楼是个不错的解决方法。
日知己所无 2014-06-12
  • 打赏
  • 举报
回复
按照你原来的思路修改了代码,注释更重要,请参考
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
tony4geek 2014-06-12
  • 打赏
  • 举报
回复
Arrays.sort 方法。。
S117 2014-06-11
  • 打赏
  • 举报
回复
你读取10个字符后,把数组用Arrays.sort排序,第一个就是最小的,最后一个就是最大的!
满无解 2014-06-11
  • 打赏
  • 举报
回复
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); } } 代码改成这样,也比较整洁,你说呢?
满无解 2014-06-11
  • 打赏
  • 举报
回复
String max = a[0]; String min = a[0]; 这两句改成这样 String max = “”; String min = “”; 要不然会有空指针的,这样改完应该就没问题了,你试试

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧