How to Determine the Max and Min Values Read in From a Text File in Java

前端 未结 3 964
不思量自难忘°
不思量自难忘° 2021-01-25 08:33

I am doing a homework assignment for a class, and am looking for some helpful pointers, not full solutions. Basically, I have to write a Java program that reads in a text file a

相关标签:
3条回答
  • 2021-01-25 08:35
    Highest Seen So Far: -Infinity
        (or any really low number so that any number you see next will be higher)
    Lowest Seen So Far: Infinity
        (or any really high number so that any number you see next will be lower)
    
    Walk through each data point "d":
        is d higher than your latest "highest seen so far"?
            -> if yes, your new highest seen so far is now d
        is d lower than your latest "lowest seen so far"?
            -> if yes, your new lowest seen so far is now d
    
    Your highest seen so far is now the highest data point
    Your lowest seen so far is now the lowest data point
    

    In pseudocode:

    highest = -inf
    lowest = inf
    
    for d in dataset:
      if d > highest:
        highest = d
      if d < lowest:
        lowest = d
    
    print "highest: " + highest
    print "lowest: " + lowest
    

    here is an example

    let's say your dataset is 5 2 8 4

    Step 0
        Highest: -inf
        Lowest: inf
    
    Step 1
      See d = 5...that's higher than highest -inf, so new highest is 5.
      See d = 5...that's lower than lowest -inf, so new lowest is 5
        Highest: 5
        Lowest: 5
    
    Step 2:
      See d = 2...that's not higher than highest 5...highest is still 5
      See d = 2...that is lower than lowest 5...new lowest is 2
        Highest: 5
        Lowest: 2
    
    Step 3:
      See d = 8...that's higher than highest 5...new highest is 8
      See d = 8...that's not lower than lowest 2...lowest is still 2
        Highest: 8
        Lowest: 2
    
    Step 4:
      See d = 4...that's not higher than highest 8...highest is still 8
      See d = 4...that's not lower than lowest 2...lowest is still 2
        Highest: 8
        Lowest: 2
    
    Result:
        Highest: 8
        Lowest: 2
    
    0 讨论(0)
  • 2021-01-25 08:41

    You need to use a few variables to keep track of the min and max temp.
    Every time a higher (lower) temp comes along you update the variables.

    Ok start with very high max and very low min outside the loop.
    As soon as you see a (higher) lower temp inside the loop you adjust the vars.
    After the loop you recap.

    0 讨论(0)
  • 2021-01-25 09:00

    Here is a way to do it:

    String tempList; //Create string variable named tempList
    int lineCount = 0; //Create integer variable named lineCount
    String sep = ": Temp "; //Create string variable named sep (short for separation) and set it equal to the literal string ":"
    String space = " "; //Create string variable named space and set it equal to an actual space between texts
    
    String maxValueYear = "";
    String minValueYear = "";
    double maxValue = 0;
    double minValue = Double.MAX_VALUE;
    System.out.println("The following is the provided information from the file input. ");
    while ((tempList = kb.readLine()) !=null) { //while loop stating that as long as the text file still has values to read (is not null), continue to execute
    
        String year = tempList.substring(0, tempList.indexOf(space));
        double temp = Double.valueOf(tempList.substring(tempList.indexOf(space), tempList.length()));
    
        if (temp > maxValue) {
            maxValue = temp;
            maxValueYear = year;
        }
        if (temp < minValue) {
            minValue = temp;
            minValueYear = year;
        }
        System.out.println("Line " + lineCount++ + ": Year " + tempList.replace(space, sep)); //Prints out the line number (lineCount++), the info from the temps.txt file with a ":" between the year and the number (tempList.replace (space,sep)
    
    }
    
    System.out.println("The minimum temp occured in year " + minValueYear + " and was " + minValue);
    System.out.println("The maximum temp occured in year " + maxValueYear + " and was " + maxValue);
    
    0 讨论(0)
提交回复
热议问题