2012-12-07 66 views
0

我想讀取字符串並對它們進行排序。我收到了許多錯誤,這些錯誤在下面的代碼中出現。你能告訴我如何解決這些錯誤?Java字符串排序錯誤

package hw05; 

/* 
Demonstrates selectionSort on an array of strings. 
*/ 
import java.util.Scanner; 

public class Strings { 
    // -------------------------------------------- 
    // Reads in an array of strings, sorts them, 
    // then prints them in sorted order. 
    // -------------------------------------------- 
    public static void main(String[] args) { 

     String[] stringList; 
     String size; 

     Scanner scan = new Scanner(System.in); 

     System.out.print("\nHow many strings do you want to sort? "); 
     size = scan.nextLine(); 
     **stringList = new String[size];** 

     System.out.println("\nEnter the strings..."); 
     **for (String i = 0; i < size; i++) 
      stringList[i] = scan.nextLine();** 
     Sorting.selectionSort(stringList); 

     System.out.println("\nYour strings in sorted order..."); 
     **for (String i = 0; i < size; i++) 
      System.out.print(stringList[i] + " ");** 
     System.out.println(); 

    } 
} 
+0

有什麼錯誤? –

回答

1
stringList = new String[size]; 

大小應該是intString。你需要做類似如下:

int sizeInInt = Integer.valueOf(size); // This may throw NumberFormatException, wrap it in try/catch. 

stringList = new String[sizeInInt ]; 

(或)

更改大小int,做好nextInt()代替nextLine()

我建議做之前做hasNext()要麼nextInt()(或者nextLine(),否則你可能得到NoSuchElementException

1

首先,你應該發佈你得到的確切的錯誤。

雖這麼說,看看每一行的這一部分:

String i = 0 

在這裏,你聲明一個名爲i一個String變量並賦予它的價值0這是一個int。編譯器會抱怨,因爲您正在爲該變量分配不同類型的值。

這可能不是您的代碼唯一的問題。正如我前面所說,請發佈錯誤消息,以便我們能夠以更及時的方式爲您提供幫助。

+0

這是我運行時得到的錯誤。例外在線程 「主」 了java.lang.RuntimeException:不可編譯的源代碼 - 需要不兼容的類型 :整數 發現:java.lang.String中 \t在hw05.Strings.main(Strings.java:25) Java結果:1 –

+0

@MaggieErwin你如何編譯和運行你的代碼?我很驚訝你可以運行它,因爲它甚至不應該編譯。 –