Array Java上的最后一个单词/句子

时间:2017-01-24 12:09:14

标签: java arrays alphabetical

我有一项任务,看起来很容易,但我无法弄清楚如何解决它。

它说:

  • a)询问用户:你想写多少个单词/句子(at 至少5)? (使用 循环)
  • b)使用 for 循环让用户编写单词/句子
  • c)用户写完单词/句子后,输出哪个 单词/句子按字母顺序排列(使用 .compareTo() 方法)

这就是我提出的:

import java.util.Scanner;
import java.lang.String;
import java.util.Arrays;

public class LastString {
public static void main (String [] args){
Scanner input = new Scanner (System.in);

final short MIN_NUM = 2;
int num = 0;
int count = 0;
String [] sentence = new String [0];
String last = "";

while (num < MIN_NUM){
  System.out.println("How many words/sentences do you want to put? " + "\t\t\t\t\t\t\t\t --- at least " + MIN_NUM);
  num = input.nextInt();
  sentence = new String [num];
}


for (int i = 0; i < num ; i++ ) {
  System.out.println("\nWrite a word/sentence" + "\t\t\t\t\t\t\t\t\t --- (Time: " + (i+1) + " )");
  sentence [i] = input.nextLine();
  System.out.println("The word/sentence is:  " + sentence[i]);
}

int i = 0;
int max;

for (i=0;i<num-1 ;i++ ) {
  if(sentence[i].compareTo(sentence[i+1]) > 0){
    last = sentence[i];
    count ++;
  }else if (sentence[i].compareTo(sentence[i+1]) < 0) {
      last = sentence[i+1];
      count++;
  }
}

System.out.println("\n\n------------" +
                  "\nLast word/sentence is: " + last);



System.out.println(Arrays.toString(sentence));

}

}

我编译并运行。我有两个问题:

  1. nextLine&gt;&gt;&gt;它正在滑动第一句

  2. 我不知道如何使算法计算哪个单词/句子具有最大值,或者使用compareTo()方法,其中单词/句子的值为&gt; 0与阵列上的每个其他值相比。

  3. 谢谢。

2 个答案:

答案 0 :(得分:0)

对Q1的回答:num = input.nextInt();以数字作为输入,但也不使用新行,因此nextLine消耗空的新行...你可以使用{{通过读取一行来获取第一个数而不是input.nextLine,然后将int值解析为num = input.nextInt();

回答Q2:

您每次都会重新设置num = Integer.parseInt(input.nextLine());的值,但在重新分配最后一次之前,您不会将下一个最大候选人的值与last进行比较...

例如,请查看以下内容:

last

答案 1 :(得分:0)

它会解决你的问题......

    int count = 0;
    String [] sentence = new String[6];
    String last = "";
    for (int i = 0; i < num ; i++ ) {
      System.out.println("\nWrite a word/sentence" + "\t\t\t\t\t\t\t\t\t ---        (Time: " + (i+1) + " )");
      sentence [i] = input.nextLine();
      count++;
      if(count >= 2){
          if(sentence[i].compareTo(last) > 0){
              last = sentence [i] ;
          }
      }else{
          last = sentence [i];
      }
      System.out.println("The word/sentence is:  " + sentence[i]);

}