Почему System.Out.println [array [1]);при использовании String.split сделать массив из границ? - PullRequest
0 голосов
/ 14 декабря 2018

Вот фрагмент базового кода проекта, над которым я работаю:

System.out.println("ENter a paragraph:")
String input = sc.next();
String[] ArrayIn = new String[100];
ArrayIn = input.split("\\.");

А затем я делаю базовый цикл for, используя ArrayIn [i].

for (int i = 0; i < ArrayIn.length; i++) {
    System.out.println(ArrayIn[i]);
}

Но что-нибудь в предложении, например Мне нравится мясо.Я люблю говядину напечатал бы Я люблю мясо , а затем выдаст мне ошибку.Я только новичок, поэтому я не знаю всех мясных частей Java.Можете ли вы дать мне простое объяснение?Спасибо.

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

Единственная проблема в вашем коде - это строка:

String input = sc.next();

, которую следует изменить на:

String input = sc.nextLine();

, поскольку вы хотите разбить полную строку.Эти строки:

String[] ArrayIn = new String[100];
ArrayIn = input.split("\\.");

не выдают никакой ошибки, но могут быть объединены с:

String[] ArrayIn = input.split("\\.");

, поэтому я не могу понять, почему вы получили какие-либо ошибки из кода, который вы опубликовали.Может быть, это не весь код.

0 голосов
/ 14 декабря 2018

next () может читать ввод только до пробела.Он не может прочитать два слова, разделенные пробелом.Кроме того, next () помещает курсор в ту же строку после чтения ввода.

nextLine () читает ввод, включая пробел между словами (то есть читает до конца строки \ n).Как только ввод прочитан, nextLine () помещает курсор в следующую строку.

Вот почему используйте: sc.nextLine ()

0 голосов
/ 14 декабря 2018

измените for loop, используйте это

// split phrases by '.'
String[] sentences= input.split("\\.");
for(int i = 0; i < sentences.length; i++) {
    System.out.println(sentences[i]);
}

ваша проблема заключалась в том, что вы используете sc.next().Это означает, что если ваш ввод hello world. bye, он будет восприниматься как 3 разных входа, разделенных пробелами ['hello', 'world.', 'bye'].Вы должны использовать sc.nextLine() вместо этого.Тогда полный код будет

Scanner sc = new Scanner(System.in);
System.out.println("ENter a paragraph:");
String input = sc.nextLine();
String[] sentences = input.split("\\.");
for (int i = 0; i < sentences.length; i++) {
    System.out.println(sentences[i]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...