0

我正在尝试读取字符串并对它们进行排序。我收到了很多错误,这些错误在下面的代码中加了星号。你能告诉我如何解决这些错误吗?

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();

    }
}
4

2 回答 2

1
stringList = new String[size];

大小应该int不是String。您需要执行以下操作:

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

stringList = new String[sizeInInt ];

(或者)

将大小更改为int并执行,nextInt()而不是nextLine()

我建议在执行 nextInt() (或) nextLine() 之前执行 hasNext() ,否则您可能会得到NoSuchElementException.

于 2012-12-07T04:09:25.180 回答
1

首先,您应该发布您得到的确切错误。

话虽如此,看看每一行的这一部分:

String i = 0

在这里,您声明了一个String名为的变量i,并为其分配了0一个int. 编译器会抱怨,因为您正在为变量分配不同类型的值。

这可能不是您的代码的唯一问题。正如我之前所说,请发布错误消息,以便我们更及时地为您提供帮助。

于 2012-12-07T04:09:42.350 回答