У меня есть задание, оно выглядит довольно легко, но я не могу понять, как его решить.Последнее слово/предложение на массиве Java
Он говорит:
- а) Попросите пользователя: Сколько слов/предложений вы хотите написать (по крайней мере 5)? (Использование в то время как петля)
- б) Использование для петлю, чтобы пользователь записать слова/фразы
- с) после того, как пользователя написаны слова/фразы, выход которого слово/предложение приходит последним в алфавитном порядке (с использованием .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));
}
}
Я компилирую и запускаю. У меня есть две проблемы:
nextLine >>> это skiping первое предложение
Я не знаю, как сделать алгоритм для вычисления, какое слово/предложение имеет наибольшее значение или, используя метод compareTo(), слово/предложение которого имеет значение> 0 по сравнению с каждым другим значением в массиве.
спасибо.
Что определяющим фактором может быть применен к "предложения" в сортировать по алфавиту? – CraigR8806
Я не понимаю вопроса. Если вы имеете в виду нижний регистр в верхнем регистре, это не имеет значения. Это слово или предложение. –
Ответ на вопрос Q 1: 'num = input.nextInt();' принимает число как вход, но также не потребляет новую строку, и, следовательно, 'nextLine' потребляет пустую новую строку ... вы можете использовать 'input.nextLine' также получить первое число вместо' num = input.nextInt(); ', прочитав строку, затем проанализируя значение int как' num = Integer.parseInt (input.nextLine()); ' –