java - 如何在我的代码中添加一个称为类别的新数组并将其与已保存到数组的文本文件中的代码一起打印出来
问题描述
现在我想在我的代码中添加一个名为“category”的新数组。我应该添加一个数组,并可以让它与我的其他代码一起打印出来。我已经为 2014 年的类别尝试了 if 语句。它告诉我没有语法错误,但没有打印任何内容。我还想格式化我的代码,使它们都在列中并且看起来很有条理。我尝试了几种方法,但没有任何改变。我现在放的没有格式,这并不重要,但是如果有人可以提供帮助,非常感谢。
enter code here
/**
* Write a program to calculate the average category, pressure, and wind
speed of Atlantic hurricanes that have occurred between a given year
range. Also, tally the number of storms in each category according to the
Saffir-Simpson scale.
*
* Steven Liu
* 10/25/2019
*/
import java.util.Scanner;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.text.DecimalFormat;
public class HurricaneSelector
{
public static void main(String[] args) throws IOException
{
Scanner in = new Scanner (System.in);
File fileName = new File ("hurricanedata.txt");
Scanner inFile = new Scanner(fileName);
int totalYear;
System.out.println("What year do you want from 1995 - 2015(e.g.
2004 2005): ");
int startYear = in.nextInt();
int endYear = in.nextInt();
totalYear = endYear - startYear;
int Arrays;
int counter = 0;
while (inFile.hasNextLine())
{
inFile.nextLine();
counter++;
}
inFile.close ();
int finalSpeed = 0;
int [] year = new int[counter];
String [] month = new String[counter];
String [] name = new String[counter];
int [] pressure = new int[counter];
int [] windSpeed = new int[counter];
int index = 0;
int [] category = new int[]{1, 2, 3, 4, 5};
inFile = new Scanner(fileName);
while (inFile.hasNext())
{
year[index] = inFile.nextInt();
month[index] = inFile.next();
pressure[index] = inFile.nextInt();
windSpeed[index] = inFile.nextInt();
name[index] = inFile.next();
finalSpeed += windSpeed[index];
index++;
}
double windSpeedMPH;
double winds;
if (startYear == 1995)
{
for (int n = 0; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 1996)
{
for (int n = 11; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 1997)
{
for (int n = 20; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 1998)
{
for (int n = 23; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 1999)
{
for (int n = 33; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2000)
{
for (int n = 41; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2001)
{
for (int n = 49; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2002)
{
for (int n = 58; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2003)
{
for (int n = 62; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2004)
{
for (int n = 69; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2005)
{
for (int n = 78; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2006)
{
for (int n = 93; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2007)
{
for (int n = 98; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2008)
{
for (int n = 104; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2009)
{
for (int n = 112; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2010)
{
for (int n = 115; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2011)
{
for (int n = 127; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2012)
{
for (int n = 134; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2013)
{
for (int n = 144; year[n] < endYear + 1; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
else if (startYear == 2014)
{
for (int n = 146; year[n] <= endYear; n++)
{
windSpeedMPH = windSpeed[n] * 1.15078;
if(windSpeedMPH < 96)
{
category[n] = category [0];
}
else if (windSpeedMPH< 111)
{
category[n] = category [1];
}
else if (windSpeedMPH< 130)
{
category[n] = category [2];
}
else if (windSpeedMPH < 157)
{
category[n] = category [3];
}
else if (windSpeedMPH > 156)
{
category[n] = category [4];
}
System.out.printf("%d %-10s%8d%17d%17.2f%n", year[n], name[n], category[0], pressure[n], windSpeed[n] * 1.15078);
}
}
else if (startYear == 2015)
{
for (int n = 52; year[n] <= endYear; n++)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
}
}
}
预期的输出应该类似于(中间应该是类别,我为示例输出输入了随机数。类别的实际数字显示在我的代码中,数组在开头,if 语句在 2014 年部分):
2011 Irene 3 942 120.83189999999999
2011 Katia 4 942 138.09359999999998
2011 Maria 1 983 80.5546
2011 Nate 1 994 74.80069999999999
2011 Ophelia 4 940 138.09359999999998
2011 Philippe 3 976 92.0624
2011 Rina 2 966 115.07799999999999
2012 Chris 2 974 86.3085
2012 Ernesto 1 973 97.8163
2012 Gordon 4 965 109.32409999999999
2012 Isaac 2 965 80.5546
2012 Kirk 4 970 103.57019999999999
2012 Leslie 4 968 80.5546
2012 Michael 4 964 115.07799999999999
2012 Nadine 4 978 92.0624
2012 Rafael 2 969 92.0624
2012 Sandy 4 940 115.07799999999999
2013 Humberto 3 979 92.0624
2013 Ingrid 5 983 86.3085
2014 Arthur 3 973 97.8163
2014 Bertha 2 998 80.5546
2014 Cristobal 2 965 86.3085
2014 Edouard 4 955 120.83189999999999
2014 Fay 3 983 80.5546
2014 Gonzalo 4 940 143.8475
解决方案
int n=0;
while(year[n]<=endYear)
{
if(year[n]>=startYear)
{
System.out.println(year[n] + " " + name[n] + " " + pressure[n] + " " + windSpeed[n] * 1.15078);
windSpeedMPH = windSpeed[n] * 1.15078;
}
n++;
}
不太确定您要的是什么,但是您应该将 if else 嵌套语句更改为循环
推荐阅读
- android - Android localhost:“获取脚本时出现未知错误。” 用于 Firebase 消息传递 ServiceWorker
- azure - 有办法在 Azure AD B2C 中启用 Microsoft Authenticator?
- go - 编译时间超慢
- mysql - 如何轻松部署本地服务器?
- sql - 如何删除 sas 表中每个组的第一次出现?
- rust - 有没有办法将类型名称放入 Rust 宏?
- visual-studio-code - 我无法在 Linux 的 Win 子系统中的 Visual Studio Code 中创建文件或目录
- shell - 在重新运行黄瓜测试的 Windows 批处理命令执行脚本后,Jenkins 作业总是失败
- docker - Docker 容器可以访问互联网,但不能访问本地网络
- selenium - Selenium 自动化 - 需要 xpath 来定位 2 个具有几乎相同属性的 UI 元素位于不同的 HTML 标记中