我正在为班级做作业,正在寻找一些有用的指导,而不是完整的解决方案。基本上,我必须编写一个 Java 程序,读取文本文件并逐行列出信息,列出行号,最后打印出最大值和最小值以及与每个值相关的年份。该文本文件包含年份和该年的温度。因此,它列出了类似“1900 50.9”的内容。我不打算使用阵列或扫描仪,这是作业的一部分。我已经能够成功地让程序打印出每年以及相应的温度和行数。我被告知,并且确实使用了 while 循环。现在,我唯一的问题是以某种方式访问文本文件,我可以以某种方式区分所有温度,哪个是最高温度,哪个是最低温度,以及每个温度发生在哪一年。直到现在我还没有寻求帮助因为我想自己解决这个问题,但由于逾期处罚,这项作业不再值得任何积分。任何帮助将非常感激,因为我仍然想解决这个问题。谢谢。
这就是我所拥有的。
public class main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File temps = new File ("temps.txt"); //Creates path to temps.txt file
FileReader textReader = new FileReader (temps); //Input information from temps.txt file into file reader
BufferedReader kb = new BufferedReader (textReader); //Use buffered reader to hold temps.txt file info from the file reader
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
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
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)
}
}
}
到目前为止的输出是这样的:
Line 0: Year 1900: Temp 50.9
Line 1: Year 1901: Temp 49
Line 2: Year 1902: Temp 49.7
Line 3: Year 1903: Temp 49.5
Line 4: Year 1904: Temp 47.1
Line 5: Year 1905: Temp 49.1
等等一直到...
Line 99: Year 1999: Temp 52.7
BUILD SUCCESSFUL (total time: 0 seconds)
这是一种方法:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)