[英]java auto converts string to long?
在下面的代碼中,在內部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);
}
}
for(Long j=i ; j<i+3 ; j++) {
String c = numb.charAt(j);
如您所見,您聲明j為long。 String.charAt方法將int作為參數索引,並且不長。 為了防止這種情況,請考慮是否真的需要j長。 如果不這樣做,請將其更改為int,它應該可以正常工作(我想您的String numb不會比int的大小長)。 如果這樣做,請閱讀有關將long轉換為整數的信息(例如,在此處: 將Long轉換為Integer )。
String c =Character.toString(numb.charAt(j.intValue()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.