繁体   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