0

我正在尝试创建一个接收单个字符串并按字母顺序对单词进行排序的程序,这是我目前拥有的,但没有打印出来:

System.out.println("Enter words, sepaated by commas and spaces");
      String input= scanner.next();
      String[] words= input.split(" ");
      Arrays.sort(words);
      StringBuilder zoop= new StringBuilder();
      for(int i=1; i<words.length; i++){
       zoop.append(" ");
       zoop.append(words[i]);
      }
      String sorted= zoop.toString();
      System.out.println(sorted);
4

3 回答 3

2
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();

for(int i=0; i<words.length; i++){

scanner.next()只返回下一个完整的令牌。在您的情况下,它只返回第一个单词。由于 for 循环以 1 而不是 0 开始,因此程序什么也不打印。

于 2013-05-20T02:53:12.947 回答
1

您有两个错误协同工作以不产生任何输出。首先,看看Scanner.next()Scanner.nextLine()之间的区别。然后意识到数组在 Java 中是从 0 开始的,然后再看看你的for 循环

于 2013-05-20T02:52:38.967 回答
0

for(int i=1; i<words.length; i++){

应该

for(int i=0; i<words.length; i++){

于 2013-05-20T02:52:19.947 回答