我对编程非常陌生,对Java非常陌生,所以我确信这个问题(以及我所有的其他错误)对于有经验的人来说都是非常明显的。我显然不知道自己在做什么。 我的任务是将Python代码转换为Java。以下是我的代码。
我的两个错误代码是:
Assignment1.java:37: error: incompatible types: String cannot be
converted to int
response = reader.nextLine();
Assignment1.java:38: error: incompatible types: int cannot be converted to String
num = Integer.parseInt(response);
为了澄清,我正在使用JGrasp,但愿意不这样做。
感谢先进的帮助。 〜JBOrunon
import java.util.Scanner;
public class Assignment1 {
public static void main(String[] args) {
int num, response, min, max, range, sum, count, avg;
Scanner reader = new Scanner(System.in);
String reportTitle;
//title
System.out.println();
System.out.println("Enter a title for this report");
reportTitle = reader.nextLine();
System.out.println();
//data input
System.out.println("Enter a series of numebr, ending with a 0");
num = 0;
sum = 0;
response = 1;
count = 0;
max = 0;
min = 0;
range = 0;
while (true)
{
if (response < 1)
{
System.out.println("End of Data");
break;
}
System.out.println("Enter number => ");
response = reader.nextLine();
num = Integer.parseInt(response);
sum += num;
count += 1;
if (num>max)
{
max = num;
}
if (num<min)
{
min = num;
}
}
//crunch
avg = sum / count;
range = max - min;
//report
System.out.println();
System.out.println(reportTitle);
System.out.println();
System.out.println("Sum: => "+sum);
System.out.println("Average: => "+avg);
System.out.println("Smallest: => "+min);
System.out.println("Largest: => "+max);
System.out.println("Range: => "+range);
}
}
答案 0 :(得分:1)
要从文件中读取整数,您只需使用如下示例:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
但是,您没有提供有关文件结构的更多信息,因此我的建议是再次查看文档以找到最适合您的文档。 您可以找到扫描仪here的文档。
答案 1 :(得分:0)
response
是int
,nextLine()
的方法Scanner
会返回......好吧,一行由 String
。您无法将String
分配给int
- 您将如何执行此操作? String
可以是"some text"
到" a 5 0 "
之内的任何内容。您如何将第一个和/或第二个转换为int
?
你可能想要的是:
System.out.println("Enter number => ");
response = reader.nextInt();
// notice this ^^^
而不是:
System.out.println("Enter number => ");
response = reader.nextLine();
// instead of this ^^^^
nextInt()
方法需要一系列可以表示数字的数字和/或字符,例如:123
,-50
,0
等等。
但是,您必须注意一个重要问题 - 混合nextLine()
和nextInt()
会导致不良后果。例如:
Scanner sc = new Scanner(System.in);
String s;
int a = sc.nextInt();
s = sc.nextLine();
System.out.println(s);
将打印无,因为在输入数字时,您输入例如123
和点击输入 ,您还要输入换行符。然后,nextLine()
将会触发,将扫描每个角色,直到第一个发现的换行符或文件结束符,显然仍然存在,未被{ {1}}。要解决此问题并阅读更多相关信息,请转到here