【发布时间】:2014-01-01 16:29:45
【问题描述】:
在下面的代码中,在内部 for 循环中,我收到以下错误:
LargestProdInSeries.java:16:java.lang.String 中的 charAt(int) 不能 应用于(java.lang.Long)
String c = numb.charAt(j);
当我将 num 声明为 String 时,为什么会发生这种情况?
看到我的整个字符串是一个数字,java 是否会进行自动转换? 如何防止这种情况发生?
public class LargestProdInSeries {
public static void main(String[] args) {
String numb = "731671";
Long maxProd=0L;
for(Long i = 0L; i < numb.length() ; i++) {
Long prod=1L;
for(Long j=i ; j<i+3 ; j++) {
String c = numb.charAt(j);
prod *= Long.parseLong(c);
}
//inner for
if(maxProd<prod) {
System.out.println(maxProd);
}
}
System.out.println("Max Prod = "+maxProd);
}
}
【问题讨论】:
-
1.
charAt将int参数作为参数。您将其传递给Long。 2.charAt返回char,而不是String。 -
@ZouZou 这应该是答案
-
请随意发布它作为答案,我会支持你的 =)
-
太棒了!这消除了我的疑问。错误是因为传递给 charAt 的参数而不是因为 numb。谢谢! :)
标签: java string long-integer