java - 如何重写 for 循环以将字符串更改为 int/double?
问题描述
我正在为学校写java,来自用户输入的最低和最高整数(从字符串更改)。由于第 36-39 行的“二元运算符'>'的操作数类型错误”和“不兼容的类型:字符串无法转换为双精度”,我无法编译它(该类有一些奇怪的东西)
public class average2{
// accept string args
public static void main( String[] args ){
//initialize variables
double x = 0;
double temp = 0;
double sum = 0;
double avg = 0;
double highest = 0;
double lowest = 0;
System.out.print("java average ");
for(String arg:args){
System.out.print(arg);
System.out.print(" ");
//x = Double.parseDouble(args[ i ]);
}
System.out.println("");
System.out.println("Welcome to the Average Program. It is rather average.");
// add numbers
for( int i = 0; i< args.length; i++ ){
// convert string to either double or int
x = Double.parseDouble(args[ i ]);
temp = ( x + sum);
sum = temp;
}
//find highest value
for( int i = 1; i< args.length; i++ ){
x = Double.parseDouble(args[ i ]);
if(args[i] > highest)
highest = args[i];
else if(args[i] < lowest)
lowest = args[i];
//display answer
System.out.println( "The highest given value: " + highest);
System.out.println( "The lowest given value: " + lowest);
}
if ( args.length > 0 ){
// do math add numbers divide by length
avg = sum / args.length;
// display answer
System.out.println( "The average is: " + avg);
}
// test for null input
else if( args.length == 0 ){
System.out.println( "Usage java average X (where X is a list of integers) ");
}
}
}
解决方案
在这里,您将字符串解析为双精度:
x = Double.parseDouble(args[ i ]);
但是,在下一行,您尝试将字符串与数字进行比较:
if(args[i] > highest)
改为使用x
:
if(x > highest)
推荐阅读
- node.js - 将 MongoDB 结果流式传输到 Express 响应
- python - 以几乎均匀采样的随机顺序迭代长迭代器,无需大量内存
- javascript - Vm 未定义 - 带有 vueCLI 的 vueJS
- amazon-web-services - 为什么我在 aws cognito 中签出没有撤销 lambda 中的访问令牌
- jdbc - Kafka JDBC 连接器 Sap 无法读取带有@“错误非法初始字符:@”的表
- java - 从 swagger 2 注释生成 openapi3 json 的 Maven 插件
- java - 如何在 Arduino 中手动找到我的 jssc 库
- sql - 如何在sql server中根据case条件执行两个查询
- nativescript - NativeScript FontAwesome 5 免费版在 iOS 中用纯字体覆盖常规字体
- ubuntu-16.04 - 每次我运行命令“make qemu”时,Ubuntu 16.04 都会冻结。我该如何解决?