2016-02-12 91 views
1

我正在處理一個小型學校作業,其中我製作了一個方法來插入一個數組,其值爲3 <。我必須通過規定的方法從標準輸入冒泡數組。我已經完成了任務,沒有任何語法錯誤,也沒有完成任務告訴我們的內容,但是輸入給我一個小問題。從理論上講,我的代碼應該可以正常工作,但是我收到了這個錯誤Cannot find symbol - method readInt(java.lang.String)找不到符號 - 方法readInt(java.lang.String)

我問過我的老師的幫助和幫助,但他所做的唯一事情是告訴我,我必須編寫一個小程序和麪板,但這不是我打算如何處理這個任務。

的代碼(我用的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提前)

+0

這是重複的問題,已經在這裏回答:http://stackoverflow.com/a/34008690/2053798 – tfranovic

回答

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

+0

很好的答案+1 – Abdelhak

相關問題