有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中扫描长类型中的整型数?

我正试图扫描matix,但出现了一些错误。 这是我的密码:

import java.io.*;
import java.util.*;

public class Solution {

public static void main(String[] args) {

    Scanner in=new Scanner(System.in);

    long a=in.nextLong();


// ERROR: incompatible types: possible lossy conversion from long to int


    long[][] b=new long[a][a];


    for(long i=0;i<a;i++){
        for(long j=0;j<a;j++)
            {
//same error here

            b[i][j]=in.nextLong();
        }
    }   
}
}

共 (4) 个答案

  1. # 1 楼答案

    把它改成这样,长变量的初始化应该以L结束,以指定它是一个长整数

    for(long i=0L;i<a;i++){
        for(long j=0L;j<a;j++)
    

    以及要转换为int而不是long的初始化

  2. # 2 楼答案

    在数组声明中,必须对每个数组维度大小强制转换int:

            long[][] b = new long[(int) a][(int) a];
    

    原因是int是一种只使用整数的变量类型:long、double、float和其他数字变量类型接受小数,而int不接受小数

  3. # 3 楼答案

    我认为问题是当你从键盘上读取一些值时

     long a=in.nextLong();
    

    在这里,您可以尝试读取Long,以便在键盘中使用Long格式添加值,如下所示: 1 或者: https://stackoverflow.com/a/6834049/5877109

  4. # 4 楼答案

    设置数组大小时,请使用int而不是long。当你浏览它时,使用int作为索引

    import java.io.*;
    import java.util.*;
    
    public class Solution {
    
        public static void main(String[] args) {
    
            Scanner in=new Scanner(System.in);
    
            int a=in.nextInt();
    
            long[][] b=new long[a][a];
    
    
            for(int i=0;i<a;i++){
                for(int j=0;j<a;j++)
                {    
                    b[i][j]=in.nextLong();
                }
            }
        }
    }