【问题标题】:how to scan a int type number in long type in java? [duplicate]如何在java中扫描long类型的int类型编号? [复制]
【发布时间】:2016-12-07 14:14:43
【问题描述】:

我正在尝试扫描 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();
        }
    }   
}
}

【问题讨论】:

    标签: java


    【解决方案1】:

    在数组声明中,您必须将 int 转换为每个数组维度大小:

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

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

    【讨论】:

    • 我的问题解决了,但我有一个疑问,如果 'a' 是长数据类型,会发生什么?
    • 我不明白。如果变量 a 是 long 类型,如果这就是你的意思,你必须将它转换为一些表示整数或整数的变量。在您的代码中,您将“a”作为长数据类型。如果将“a”保留为 long,则可能会出现运行时错误,因为扫描仪可能包含小数点后的数字。希望这是有道理的?
    【解决方案2】:

    改成这个就行了,long变量的初始化应该以L结尾,表示它是一个长整数

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

    还有初始化转换为int而不是long

    【讨论】:

    • Ya..,,,我的问题解决了。感谢您的帮助。
    【解决方案3】:

    我认为问题出在你从键盘读取一些值时。

     long a=in.nextLong();
    

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

    【讨论】:

      【解决方案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();
                  }
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-08
        • 2021-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-18
        • 2014-08-10
        • 1970-01-01
        相关资源
        最近更新 更多