我正在尝试parseDouble列1.之后,如果第1列中的元素< 5如果第2列中的元素对于同一行等于“是”,则打印出相应的行。我试图遍历每一行,看看标准是否匹配。问题是我一直没有得到任何内容或打印出来而不是行信息:[Ljava.lang.String; @ 3b3c9741。另外,我得到这个错误:找不到符号 - 变量parseDouble。任何建议都非常感谢。
String[][] input = new String[20][5];
double d = Double.parseDouble[][0]; //parseDouble column 1
for(int row=0; row<input.length; row++){
for(int col=0; col<input[row].length;col++ ){
if(input[row].length<5 && input[row].equals("yes"))
System.out.println(input[row]);
}
}
答案 0 :(得分:0)
首先 -
Double.parseDouble[][0]; //is wrong
Double.parseDouble("1") //is proper
在上面,您应该注意到parseDouble
方法被定义为以String
类型作为参数。在您的情况下,您也缺少括号。
所以,如果我真的非常努力地让它发挥作用 - 我会做类似的事情
Double.parseDouble([][0]); //or
Double.parseDouble(input[][0]); //both usage are incorrect
请参阅下文,了解您应该如何使用这些索引
int[][] a = {{1, 2}, {3, 4}};
//a[0] points to {1, 2}
//a[1] points to {3, 4}
//a[][0] is invalid
//a[0][0] points to 1
//a[0][1] points to 2
//a[1][0] points to 3
//a[1][1] points to 4
现在,将比较if(input[row].length<5 && input[row].equals("yes"))
修改为
if(input[row].length<5 && Arrays.toString(input[row]).replaceAll("\\[|\\]|,|\\s", "").equals("yes"))
//or for case insensitive comparison
if(input[row].length<5 && Arrays.toString(input[row]).replaceAll("\\[|\\]|,|\\s", "").equalsIgnoreCase("yes"))
当您说打印System.out.println(input[row])
时 - 这意味着您正在尝试打印数组
使用System.out.println(Arrays.toString(input[row]));
代替打印数组。