簡體   English   中英

java自動將字符串轉換為long?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM