找不到符号 - 方法readInt(java.lang.String)

时间:2016-02-12 23:57:02

标签: java bluej

我正在做一个小型的学校作业,我在其中使用了一个3< 3的数组。 N< 16个值。我必须通过规定的方法从标准输入中冒出数组。我已经完成了bubblesort部分,没有任何语法错误,以及作业告诉我们的确切方式,但输入给我一个小问题。从理论上讲,我的代码应该按预期工作和工作,但我收到此错误Cannot find symbol - method readInt(java.lang.String)

我已经向我的老师寻求帮助和帮助,但他唯一要做的就是告诉我必须编写applet和面板代码,但这并不是我打算如何处理这项任务。

代码(我使用BlueJ):

import java.io.*;
import java.util.*;
import java.io.Console;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.ArrayList;
import java.io.DataInputStream;
import java.io.DataOutputStream;
/**
 * Made by me
 */

public class Bubblesort
{
    private int[] a;

    public Bubblesort(int howLong) 
    {
        a = new int[howLong];
        if (howLong < 3 || howLong > 16) 
        {
            System.out.print("The length of the Array must be 3<N<16");
        }
        else 
        {
            for(int i = 0; i < a.length; i++) 
            {
                a[i] = Console.readInt("Add a value to the Array: ");
                System.out.print(a[i] + " ");
            }
            System.out.println();
        }
    }

    public void printList() 
    {
        for(int i = 0; i < a.length; i++) 
        {
            System.out.print(a[i] + " ");
        }
        System.out.println();
    }

    public void swap(int begin, int end) 
    {
        int r = -1;             
        int s = -1;

        int x;        
        int y;

        int ax;        
        int ay;

        for(int i = (end-begin); i > ((end-begin)/2); i--) 
        {
            x = begin + s;  
            y = end + r;  

            ax = a[x];      
            ay = a[y];      

            a[x] = ay;           
            a[y] = ax;

            r--;                
            s++;                

        }

        printList();
    }

    public void sort() 
    {
        printList();
        int k = a.length;
        for(int i = 1; i < a.length; i++) 
        {
            int gr = 0;
            for(int j = 1; j < k; j++) 
            {
                if(a[j] > a[gr]) 
                {
                    gr = j;
                }
            }
            swap((gr + 1), k);
            k--;
        }
    }
}

我知道我可能添加了很多不必要的进口产品,但我已经超出了我不应该做的事情......

错误在这一行:

for(int i = 0; i < a.length; i++)       
{
    a[i] = Console.readInt("Add a value to the Array: ");
    System.out.print(a[i] + " ");
}

我很确定周围的人知道这个问题的解决方法或者知道如何使用不同的代码完成与我想到的相同的事情。

Thnx提前;)

1 个答案:

答案 0 :(得分:1)

班级Console没有方法readInt

它有一个名为readLine()readLine(String fmt, Object... args)的方法。

要达到您的目的,您可以执行以下操作:

System.out.println("Add a value to the Array: ");
a[i] = Integer.parseInt(Console.readLine());

或者您也可以参考this回答以使用Scanner