2012-12-07 43 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你如何编译和运行你的代码?我很惊讶你可以运行它,因为它甚至不应该编译。 –