[Technical Issue] Java Basics - Каква е разликата между next() и nextLine()?
Здравейте,
Прочетох из нета за разликите между двата метода. Очевидно, обаче, не схващам нещо, защото не мога да разбера защо, когато решавам задачата и използвам next() ми се получава, а с nextLine() излизат неща, които не искам :) Става дума за задачата от домашното към Intro to Java за сортиране на масиви (задача 8)(да се зададат определен брой думи от конзолата и програмата да ги сортира по азбучен ред). Ето го кодът, който пиша:
import java.util.*;
public class Problem08_SortArrayOfStrings {
public static void main(String[] args){
int n;
Scanner input = new Scanner(System.in);
System.out.print("Enter a number n: ");
n = input.nextInt();
String[] words = new String[n];
for (int i = 0; i < n; i++) {
System.out.print("Enter a word: ");
words[i] = input.nextLine();
}
Arrays.sort(words);
System.out.println(Arrays.toString(words));
}
}
Когато по този начин е зададено да се пълни масивът от конзолата, ми излиза два пъти един след друг написано "Enter a word", с възможност да се впише само един стринг, след което след сортирането винаги първото място в новия масив е празно:
Enter a number n: 3
Enter a word: Enter a word: abc
Enter a word: cde
[, abc, cde]
Когато заменя nextLine с next няма проблем и работи коректно. Не разбирам, обаче, защо. Някой може ли да ми обясни?
Отново не ми отваря линка :) И аз налучках как работи, но ми се ще да знам защо :) Можеш ли да ми обясниш по-подробно или дами дадеш работещ линк или заглавие на темата, която дублирам?
Оправих уж линка...
Темата е темата за домашното от миналия курс - има ги стикнати горе във важните теми:
Списък с домашните към курса Java Basics - септември 2014
Там има линк към старите домашни.
Мисля, че схванах идеята. Благодаря ти много!