所以我需要为学校编写一个Java程序:它需要用户想要多少(IQ)值,然后调用一个computeMethod来计算这些值,然后生成一个输出,但有一个数字格式的Exception,我不知道它是从哪里来的。以下是我认为给我带来例外的方法:
private int[] values;
private double average;
private int modus;
private int aboveAvg;
private int belowAvg;
private int upperBound;
private int lowerBound;
private int valuesInIntervall;
public void compute(String userInput){
String stringNumber = " ";
int position = 0;
for (int i = 0; i < userInput.length(); i++){
if(userInput.charAt(i) == ';' && i != 0){
for(int j = i - 1; userInput.charAt(j)!= ';'; j--){
stringNumber = String.valueOf(userInput.charAt(j)) + stringNumber;
stringNumber.replace(" ", "");
values[position] = Integer.parseInt(stringNumber);
}
stringNumber = " ";
}
}
// average
for (int i = 0; i < values.length; i++){
average += values[i];
}
average /= values.length;
// modus
int sameValue = 0;
int newSameValue = 0;
int value = values[0];
for (int i = 0; i < values.length; i++){
for (int j = i + 1; j < values.length; j++){
if(values[i] == values[j]){
newSameValue++;
value = values[j];
}
}
if (newSameValue > sameValue){
sameValue = newSameValue;
newSameValue = 0;
modus = value;
}
}
// below/above average
for (int i = 0; i < values.length; i++){
if (values[i] > average){
aboveAvg++;
}else{
belowAvg++;
}
}
}
public void computeIntervall(){
Scanner scanner = new Scanner(System.in);
System.out.println("Untergrenze: ");
lowerBound = scanner.nextInt();
System.out.println("Obergrenze: ");
upperBound = scanner.nextInt();
for (int i = 0; i < values.length; i++){
if(values[i] >= lowerBound && values[i] <= upperBound) valuesInIntervall++;
}
System.out.println("Im Breich [" + lowerBound + ", " + upperBound + "] liegen " + valuesInIntervall + " IQ-Werte");
}
main方法只接受一个字符串,并让它计算它将在哪里被分隔成数字,然后将数字存储在一个int数组中。
此外,模态是数据中出现次数最多的元素。
(很抱歉,我刚从IDE复制过来,格式不好)
输出如下:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1 "
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:668)
at java.base/java.lang.Integer.parseInt(Integer.java:784)
at ue221005.IQ.compute(IQ.java:24)
at ue221005.IQ.main(IQ.java:102)
Process finished with exit code 1
编辑:问题解决了,谢谢你帮我!
stringNumber(字符串编号)。replace(“”,“”)
不会修改stringNumber,而是返回新字符串。
使用
stringNumber = stringNumber.replace(" ", "");
当我尝试编译这段代码时,Eclipse会出现以下两个错误: > 用于函数:maxmin的非法修饰符;只允许最终 对于:Mn不能解析为变量 为什么会出现这两个错误? 我想这可能已经回答了这个问题,但我不明白其中使用的术语。 这是我的代码:
抱歉,如果不允许这样做。这是我第一次问问题。无论如何,我应该实现一个程序,根据文本读取等级。 “实施一个程序,根据以下内容计算理解某些文本所需的大致年级水平。文本:恭喜!今天是你的一天。你要去很棒的地方!你走了,走了!3 年级 在完成代码之后。每次我编译它时,它都会给我一个异常,即我除以零。几乎就像在我要求用户输入文本后,它根本不被读取,字母计数保持在零。我不知道如何绕过它。下面是我导入java.
给定一个0和1的数组,我们最多可以将K个值从0更改为1。 返回仅包含1的最长(连续)子数组的长度。 例1: 例2: 注: https://leetcode.com/problems/max-consecutive-ones-iii/ 这是问题链接。在第一个测试用例中,我得到了输出9,但应该是6。我不知道哪里出了问题?
我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 输入三角形的三条边
我试图模拟一些静态方法,但得到以下堆栈跟踪 DAQHelper是一个静态类,它是从我当前正在测试的方法调用的。为了保持故事简短,我有一个方法addMetricData(…)调用getCategoryResource(…)等此getCategoryResource(…)是一个公共静态方法,它反过来调用getDomainResource(DAQHelper中的私有静态方法)。getDomainReso
我很确定错误是由最后一行引起的。从我所知,它不满意我使用变量“%d”。但这不是整数的有效输入吗? 错误消息: