坚持Java程序(java.io. *;)?

时间:2013-03-14 01:39:16

标签: java

我的计划的目的是询问温度(F)是什么以及外面的天气条件是什么样的。

天气状况可以是晴天(1),下雨(2),阴天(3)或下雪(4)。数字1-4将用于澄清天气状况(我不确定)如何做任何其他方式......)

然后,根据tempweatherCondition的组合,我希望能够根据temp和{{1}的组合显示10种选择中的3种服装}。

我还在学习,所以如果我的问题或问题看起来很平凡,我道歉......

当用户输入weatherConditiontemp时,会根据两个输入的组合(例如,热阳光,冰雪)给出响应。

相反,我想创建一个或多个txt文件,并将每个文件命名为 hotSunny.txt 。在这些txt文件中,我列出了10种类型的服装。我最终希望程序识别哪个组合匹配其相应的txt文件,然后随机显示10个中的3个。

到目前为止我得到了什么......

weatherCondition

2 个答案:

答案 0 :(得分:0)

您的freezingSnowing方法应如下所示:

public static void freezingSnowing() {
    file = new File(MyWeatherApp.class.getResource
                                (path + "freezingSnowing.txt"));
                   // path to the txt file
                   // where path is the local path to the file
    scanner = new Scanner(file);

    ArrayList<String> garments = new ArrayList<>(10);
    while(scanner.hasNextLine()) {
        garments.add(scanner.nextLine());
    }

    ArrayList<Integer> indices = new ArrayList<>(3);
    for(int i = 0; i < 3; i++) {
        while(true) { // watch out for duplicates
           int rand = (int)(Math.random() * 9);
           if(!indices.contains(rand))
               break;
        }
        indices.add(rand);

    JOptionPane.showMessageDialog(null, "It's is snowing! " +
                "I recommend that you dress very warm " +
                "and wear " + garments.get(indices.get(1)) +
                ", " garments.get(indices.get(2)) +
                " and " + garments.get(indices.get(3)) +
                ".");
}

答案 1 :(得分:0)

这是我随机挑选项目的版本。

public static void main(String[] args) {
    String[] weatherCond = new String[] {"cold", "hot"};
    ArrayList<String> garmets = new ArrayList<String>();
    garmets.add("clothes");
    garmets.add("hat");
    garmets.add("gloves");
    garmets.add("coat");
    ArrayList<String> pick;
    int ITEM = 3;

    int temperature = 29;

    if (temperature >= 30) {  // hot condition
        System.out.println("weather condition " + weatherCond[0]);
        pick = garmets;
        for (int i = 0; i < ITEM; i++) {
            int idx = (int) (Math.round(Math.random() * pick.size()) % pick.size());        
            System.out.print(pick.get(idx) + " " );
            pick.remove(idx);
        }
    } else {
        System.out.println("weather condition " + weatherCond[1]);
        pick = garmets;
        for (int i = 0; i < ITEM; i++) {
            int idx = (int) (Math.round(Math.random() * pick.size()) % pick.size());        
            System.out.print(pick.get(idx) + " " );
            pick.remove(idx);
        }
    }
}

此外,如果您想针对特定天气条件使用一组固定装置,您可以使用 hashmap ,它将天气条件用作关键字,将garmet组用作值。