已编辑以删除多余的代码并显示我收到的确切错误。
我试图以网格格式(如电子表格)显示我的数组。我已经声明它是一个字符串数组,所以我可以使用readLine和split,但是7列中有6列是双精度数。 我一直在所有数组变量上遇到不兼容的类型错误。 更具体地说:不兼容的类型:int不能转换为字符串,无法比较的类型int和字符串和不兼容的类型字符串不能转换为double我是新的,当我在这里研究时,我找不到如何解决这个问题。 这是我的代码:
while(s != null) {
array = s.split(delimiter);
dates = array[0];
dates = Integer.parseInt(array[0]);
double[] nums = new double[array.length];
for (int i = 0; i < nums.length; i++) {
nums[i] = Double.parseDouble(array[i]);
}
if(dates != 0) {
open = array[1];
high = array[2];
low = array[3];
close = array[4];
adjClose = array[5];
volume = array[6];
答案 0 :(得分:4)
Java是静态类型语言。你不能只是拿一根绳子假装它是双倍的。 String[]
变量总是将包含字符串。它可能包含看起来像双打的字符串,但它们总是字符串。
String[] array = ...;
double x = array[0];
这是一个类型错误,因为我们从数组中提取一个字符串,并要求系统简单地假装它是一个double,这是不会做的。
String[] array = ...;
double x = Double.parseDouble(array[0]);
这会将字符串值转换为double。如果你得到的数据来自可靠的来源(例如,如果它是一个类,而你的老师承诺数据是有效的),那就没关系。但是,如果数据来自用户或其他来源,Double.parseDouble
将在数据无效时抛出异常,并且您需要考虑在特定情况下处理该数据的正确方法。
为了完整起见,这是相反的转换。
String string = x.toString();
任何对象(以及通过Java编译器的技巧,任何原语)都可以调用toString
,这会将对象转换为字符串。