【问题标题】:Java - Return an integer arrayJava - 返回一个整数数组
【发布时间】:2016-07-10 18:20:34
【问题描述】:

在此函数中,我想获取文件中的文本,然后将其从字符串转换为十进制值,通过将此文本添加到数组应用一些循环并将结果放入整数数组。在返回这个整数数组时,它给了我一个错误“找不到符号变量 integerArray”

    int[] inputfile () throws Exception{
     BufferedReader br = null;
       String sCurrentLine;
       String message;
       br = new BufferedReader(new FileReader("\input.txt"));
       while ((sCurrentLine = br.readLine()) != null) {
           message=sCurrentLine.toString();
       char[] messageArray=message.toCharArray();

        int[] integerArray = new int[messageArray.length];
           for(int i=0; i<messageArray.length; i++)
               integerArray[i] = (int)messageArray[i];

       }
       return integerArray;
   }

我该如何解决?

更新: 我在while 循环之外声明了变量integerArray,但它总是返回null 值,有没有办法将integerArray 作为int 值返回?因为Arrays.toString(integerArray) 返回该数组的字符串表示

    int[] inputfile () throws Exception{
     BufferedReader br = null;
       String sCurrentLine;
       String message;
       br = new BufferedReader(new FileReader("\\input.txt"));
       int[] integerArray = null
       while ((sCurrentLine = br.readLine()) != null) {
           message=sCurrentLine.toString();
       char[] messageArray=message.toCharArray();

        int[] integerArray = new int[messageArray.length];
           for(int i=0; i<messageArray.length; i++)
               integerArray[i] = (int)messageArray[i];

       }
       return integerArray;

【问题讨论】:

    标签: java arrays string int return


    【解决方案1】:

    integerArray 是 while 循环中的局部变量,在它之外无法访问。在循环外声明它

    int[] integerArray =null ;
    while ((sCurrentLine = br.readLine()) != null) {
        // other code
        integerArray   = new int[messageArray.length];
            // other code
    }
    

    【讨论】:

    • 应用this后的结果为空值!
    【解决方案2】:

    您的integerArraywhile 循环内。在循环外面声明它,在里面改变它的值,就可以工作了。

    【讨论】:

      【解决方案3】:

      int[] integerArray 必须在循环之前声明,以便您能够在循环之后返回它。

      int[] inputfile () throws Exception{ 
         int[] integerArray = null;
         BufferedReader br = null;
         String sCurrentLine;
         String message;
         br = new BufferedReader(new FileReader("\input.txt"));
         while ((sCurrentLine = br.readLine()) != null) {
             message=sCurrentLine.toString();
             char[] messageArray=message.toCharArray();
             integerArray = new int[messageArray.length];
             for(int i=0; i<messageArray.length; i++)
                 integerArray[i] = (int)messageArray[i];
         }
         return integerArray;
      

      }

      【讨论】:

      • 我试过了,但结果是 "[I@15db9742" ,顺便说一句,我的文本文件包含 "Hello"
      • @SarahMohamed 这只是意味着您打印的数组不正确。使用 System.out.println(Arrays.toString(inputfile()));打印此方法的输出。
      • 在尝试这个时我发现它返回一个字符串值,有没有可能的方法以整数返回这些值?
      • @SarahMohamed 你是什么意思?您的方法返回一个整数数组。
      • 是的。但是在使用 Arrays.toString 之后它返回一个字符串值!
      猜你喜欢
      • 2013-03-04
      • 2018-04-17
      • 2014-10-31
      • 2011-05-27
      • 2021-11-01
      • 2023-03-06
      • 2014-06-28
      • 2015-05-31
      • 1970-01-01
      相关资源
      最近更新 更多