Sdscompany.ru

Компьютерный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java scanner next

Какая разница между методами next() и nextLine() из класса Scanner?

60 AnnieOK [2014-03-17 18:34:00]

В чем основное отличие между next() и nextLine() ?
Моя основная цель — прочитать весь текст, используя Scanner , который может быть «подключен» к любому источнику (например, файл).

Какой из них выбрать и почему?

13 ответов

61 Решение Tristan [2014-03-17 18:42:00]

Я всегда предпочитаю читать ввод с помощью nextLine() , а затем анализировать строку.

Использование next() будет возвращать только то, что приходит перед пробелом. nextLine() автоматически перемещает сканер вниз после возврата текущей строки.

Полезным инструментом для анализа данных из nextLine() будет str.split(«\s+») .

Для получения дополнительной информации о классе сканера или классе String обратитесь к следующим ссылкам.

30 RKC [2014-03-17 18:37:00]

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

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

Для чтения всей строки вы можете использовать nextLine() .

  • A Scanner разбивает свой вход на токены, используя шаблон разделителя, который по умолчанию соответствует пробелу.
  • next() : находит и возвращает следующий полный токен из этого сканера.
  • nextLine() : продвигает этот сканер мимо текущей строки и возвращает введенный текст.

Поэтому в случае «small example text» next() должен возвращаться «маленький», а nextLine() должен возвращать «маленький пример»

Что я заметил, кроме next() сканирует только до пробела, где nextLine() сканирует всю строку, так это то, что next ожидает, пока не получит полный токен, где nextLine() не ожидает полного токена, когда когда-либо ‘n’ (то есть, когда вы нажимаете клавишу ввода) курсор сканера перемещается на следующую строку и возвращает предыдущую пропущенную строку. Он не проверяет, указали ли вы полный ввод или нет, даже примет пустую строку, тогда как next() не принимает пустую строку

Попробуйте эту программу, изменив цикл next() и nextLine() в for, продолжая нажимать ‘n’, то есть клавишу ввода без какого-либо ввода, вы можете обнаружить, что при использовании метода nextLine() он завершается после нажатия заданного числа случаев, когда поскольку next() не завершается, пока вы не предоставите и не введете его для заданного числа случаев.

next() Возвращает следующий токен, если он соответствует шаблону, построенному из указанной строки. nextLine() Улучшает этот сканер за текущей строкой и возвращает вход, который был пропущен.

Какой из них вы выбираете, зависит от ваших потребностей. Если бы я читал целый файл, я бы пошел на следующую строку, пока у меня не было всего файла.

3 Z. Zhang [2017-02-15 06:32:00]

Для этого вопроса ключевым моментом является поиск того, где остановится метод, и где находится курсор после вызова методов. Все методы будут считывать информацию (не включает пробелы) между позицией курсора и следующими разделителями по умолчанию (пробелы, вкладки, n — созданные нажатием Enter), и курсор останавливается перед разделителями, за исключением nextLine(), который считывает информацию (включая пробелы, созданные разделителями) между позицией курсора и n, и курсор останавливается за n.

Например: (| представляет текущую позицию курсора; _ представляет пробелы; поток в жирной информации, полученной вызывающим методом)

Вызов nextInt(); прочитайте 23 | _24_25_26_27n

Вызов nextDouble(); прочитайте 23_ 24 | _25_26_27n

Вызов next(); прочитайте 23_24_ 25 | _26_27n

Вызов nextLine(); прочитайте 23_24_25 _26_27n |

После этого метод следует вызывать в зависимости от вашего требования.

Вкратце: если вы вводите строковый массив длины t, тогда Scanner # nextLine() ожидает t строк, каждая запись в строковом массиве будет отличаться от другого путем ввода ключа. И сканер # next() будет поддерживать принимая входные данные, пока вы не нажмете enter, а сохраните строку (слово) внутри массива, которая разделяется пробелами.

Давайте посмотрим на следующий фрагмент кода

когда я запускаю над фрагментом кода в своей среде IDE (скажем, для длины строки 2), не имеет значения, буду ли я вводить свою строку в качестве

Вход как: — abcd abcd или

Выход будет похож ABCD

Но если в том же коде мы заменим следующий() метод nextLine()

Затем, если вы вводите ввод в приглашении как — abcd abcd

и если вы вводите ввод в командной строке как abcd (и если вы нажмете enter, чтобы ввести следующий abcd в другой строке, приглашение ввода просто выйдет, и вы получите результат)

next() и nextLine() связаны со Сканером и используются для получения входов String. Их отличия.

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

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

введите строку для c abc def
c — abc

введите строку для d

Если вы используете nextLine() вместо next(), то

введите строку для c

ABC DEF
c — ABC DEF
введите строку для d

Просто для другого примера Scanner.next() и nextLine() выглядит так: nextLine() не позволяет вводить тип пользователя, а next() заставляет сканер ждать и читать ввод.

1 Negash [2018-04-06 18:30:00]

Сканер разбивает свои входные данные на токены, используя шаблон разделителя, который по умолчанию известен как пробельные символы.

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

1 Foobar [2014-03-17 18:40:00]

Из документации для Scanner:

Сканер разбивает свой вход на токены с использованием шаблона разделителя , который по умолчанию соответствует пробелу.

Из документации для next():

Допускается полный токен и за ним следует вход, соответствующий шаблону разделителя.

Учитывая этот код ниже:

и я не получаю возможность войти в его игру с одним противником, Холли Хиллз. Программа пропускает право на вход во вторую игру.

Почему это? Я выбрал nextLine(), чтобы я мог войти в Holly Hills, не вводя его как Holly_Hills. Если я использую next(); программа работает, как и предполагалось, хотя я должен войти в Holly Hills как Holly_Hills. Не идеально, но это работает.

Читать еще:  Скачать программу для восстановления данных с флешки

0 Negash [2018-04-06 18:41:00]

У меня также есть проблема, связанная с разделителем. вопрос был весь о вкладе

  1. введите ваше имя.
  2. введите свой возраст.
  3. введите адрес электронной почты.
  4. введите свой адрес

Эта проблема

  1. Я успешно закончил с именем, возрастом и электронной почтой.
  2. Когда я пришла в адрес двух слов, имеющих пропуска (улица Harnet) Я только что получил первый один «harnet».

Решение

Я использовал разделитель для моего сканера и вышел успешно.

Использование класса Scanner в Java — примеры и методы

Это руководство по посвящено использованию класса Scanner в Java пакета java.util. Мы будем показывать базовое применение класса Scanner до самых расширенных функций этого класса, используя примеры.

Класс Scanner имеет богатый набор API, который обычно используется для разбиения входных данных конструктора Scanner на токены. Входные данные разбиваются на токены с помощью разделителя, определенного в классе Scanner с использованием метода radix, или могут быть определены.

Объявление:
public final class Scanner
extends Object
implements Iterator, Closeable

Конструкторы класса Scanner — public Scanner(Readable source)

Создает новый сканер, который создает значения, отсканированные из указанного источника.

Параметры: source — источник символов, реализующий интерфейс Readable

Не путайте с типом объекта, доступным для чтения в качестве параметра конструктора. Readable — это интерфейс, который был реализован с помощью BufferedReader, CharArrayReader, CharBuffer, FileReader, FilterReader, InputStreamReader, LineNumberReader, PipedReader, PushbackReader, Reader, StringReader.

Это означает, что мы можем использовать любой из этих классов в Java при создании экземпляра объекта Scanner.

public Scanner(InputStream source)

Создает новый сканер, который создает значения, отсканированные из указанного входного потока. Байты из потока преобразуются в символы с использованием кодировки по умолчанию базовой платформы.

Параметры: источник — входной поток для сканирования.

Метод ввода этого конструктора — InputStream. Класс InputStream является одним из классов верхнего уровня в пакете java.io, и его использование будет проблемой.

Однако мы можем использовать подклассы InputStream, как показано ниже. Мы использовали FileInputStream, поскольку он является подклассом InputStream, при его включении проблем не возникнет.

public Scanner(File source) выдает исключение FileNotFoundException

Байты из файла преобразуются в символы с кодировкой по умолчанию базовой платформы.
Параметры: источник — файл для сканирования

Этот конструктор очень прост. Просто требует источник файла. Единственной целью этого конструктора является создание экземпляра объекта Scanner для сканирования через файл.

public Scanner(Path source) throws IOException

источник — путь к файлу для сканирования. Для параметра конструктора требуется источник Path, который используется редко.

public Scanner(String source)

Создает новый сканер, который выдает значения, отсканированные из указанной строки.

Источник — строка для сканирования.

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

Scanner в Java для чтения файлов

Считать файл очень легко, используя класс Scanner. Нам просто нужно объявить это с помощью конструктора Scanner, например:

Хитрость в итерации по токену Scanner состоит в том, чтобы применять те методы, которые начинаются с hasNext, hasNextInt и т.д. Давайте сначала остановимся на чтении файла построчно.

В приведенном выше фрагменте кода мы использовали флаг scan.hasNextLine() как средство проверки наличия токена, который в этом примере доступен на входе сканера. Метод nextLine() возвращает текущий токен и переходит к следующему.

Комбинации hasNextLine() и nextLine() широко используются для получения всех токенов на входе сканера. После этого мы вызываем метод close(), чтобы закрыть объект и тем самым избежать утечки памяти.

Считать строку из консоли ввода, используя Scanner Class

Класс Scanner принимает также InputStream для одного из своих конструкторов. Таким образом, ввод можно сделать с помощью:

После помещения в наш объект сканера, у нас теперь есть доступ к читаемому и конвертируемому потоку, что означает, что мы можем манипулировать или разбивать входные данные на токены. Используя богатый набор API сканера, мы можем читать токены в зависимости от разделителя, который мы хотим использовать в конкретном типе данных.

Важные советы

Недавно я обнаружил одну проблему. Допустим, что мы просим пользователя ввести идентификатор сотрудника и имя сотрудника из консоли.

После чего мы будем читать ввод с консоли, используя сканер. Идентификатор сотрудника будет читаться с nextInt(), а имя сотрудника будет читаться как nextLine(). Это довольно просто, но это не сработает.

Приведенный выше пример не будет работать, потому что метод nextInt не читает последний символ новой строки вашего ввода и, следовательно, эта новая строка используется при следующем вызове nextLine.

In java Scanner.next()

Hi, im new to java, as usual im trying out a few things in the Scanner Class.

is there a way to see the input of the scanner? Cuz i have a problem here with the code above as you’ll see. this is the output of my console window after i entered wrong data. instead of numbers i entered KKK so can somebody explain me why i got this error message 2 times?

Создан 24 июл. 12 2012-07-24 14:34:54 Elye M.

Also, don’t use ‘while(isValid == false)’, use ‘while(!isValid)’ instead. – Eng.Fouad 24 июл. 12 2012-07-24 14:41:11

whats wrong with ‘while (isValid == False)’ ? – Elye M. 24 июл. 12 2012-07-24 15:02:03

‘== false’ is redundant, and ‘!’ is the convention. – Eng.Fouad 24 июл. 12 2012-07-24 15:04:18

3 ответа

The problem is you’re calling scanner.nextdouble() which will work fine if and when there is a double in the input. When there is not a double in the input your input that was «KKK» is ignored by the call to nextDouble() and your error message is displayed then when you call nextLine() that same input «KKK» is still there waiting wo when you loop back throught the while the «KKK» is then passed back to your program and since it is still not a double you get the repeated error message.

That will consume the invalid input of «KKK» and let the program continue properly.

Создан 24 июл. 12 2012-07-24 15:09:36 ChadNC

Change your code as follows.

When you use Scanner.nextDouble() , it does not consume the new line (or other delimiter) itself so the next token returned will typically be an empty string.

Создан 24 июл. 12 2012-07-24 14:52:29 Lion

The reason it gives you trouble is because when the user enters a double/integer/long etc then hits enter, two things have just been entered — the double/integer/long and a *newline* which is ‘n’. The method you are calling, ‘nextDouble()’, only reads in the double/integer/long, which **leaves the newline** in the input stream. But calling ‘next()’ **does read in newlines**. – Lion 24 июл. 12 2012-07-24 15:10:10

Читать еще:  Программа для восстановления удаленных файлов из корзины

I beleive if he calls Scanner.hasNext() and the scanner only contained ‘n’ it would still block however. – gbtimmon 24 июл. 12 2012-07-24 15:55:33

I think the real problem is that you have some obfuscation in your loop structure that makes it hard to understand the in and out conditions of the scanner with each iteration of the loop.

Heres what is really happening. We enter the loop with one token in the Scanner which is not a double. We ask is there a double next in the scanner with hasNextDouble() , which since the one token can not be converted to a double, this returns false. We report an error and isValid remains false. After the branch we call scanner.next() and consumer our non double token. We renter the loop since isValid remains false. We again ask if there is a double next in the Scanner. Now the scanner is empty, since we consumed out token, and this call returns false , so we report another error. Now we call scanner.next() again. Since the scanner is now empty, and scanner.next() implements synchronous message passing (I/O), we now block until the scanner recieves a new token, so your program will stall until you input a new token. Try puting in more into your console. You would probably repeat the loop and see another error.

What you want to accomplish is with each loop, consume a token. If that token is a double, accept the input and continue, if not report an error and repeat. Try something like this instead, it should present a more clear picture of what the scanner is doing every loop.

Notice i use the wrapper class Double not the primative double . This is so that I can set the double to null, since Double is an Object and not a primitive.

Создан 24 июл. 12 2012-07-24 15:09:15 gbtimmon

В java Scanner.next()

Привет, я новичок в java, как обычно, я пробую несколько вещей в классе сканера.

есть ли способ увидеть вход сканера? Потому что у меня есть проблема здесь с кодом выше, как вы увидите. это вывод моего окна консоли после того, как я ввел неверные данные. вместо цифр я ввел KKK так может кто-нибудь объяснить мне, почему я получил это сообщение об ошибке 2 раза?

3 Ответа

Измените свой код следующим образом.

Когда вы используете Scanner.nextDouble() , он не использует новую строку (или другой разделитель), поэтому следующий возвращаемый токен обычно будет пустой строкой.

Я думаю, что реальная проблема заключается в том, что у вас есть некоторая запутанность в вашей структуре цикла, что затрудняет понимание условий входа и выхода сканера с каждой итерацией цикла.

Вот что происходит на самом деле. Мы входим в цикл с одним маркером в сканере, который не является двойным. Мы спрашиваем, есть ли double next в сканере с hasNextDouble() , который, поскольку один токен не может быть преобразован в double, это возвращает false. Мы сообщаем об ошибке, и isValid остается ложным. После ветки мы называем scanner.next() и потребляем наш не двойной токен. Мы арендуем цикл, так как isValid остается ложным. Мы снова спрашиваем, есть ли в сканере дубль next. Теперь сканер пуст, так как мы израсходовали токен, и этот вызов возвращает false , поэтому мы сообщаем о другой ошибке. Теперь мы снова вызываем scanner.next() . Поскольку сканер теперь пуст, а scanner.next() реализует синхронную передачу сообщений (I/O),, мы теперь блокируем, пока сканер не получит новый токен, поэтому ваша программа будет останавливаться, пока вы не введете новый токен. Попробуйте добавить больше в консоль. Вы, вероятно, повторите цикл и увидите еще одну ошибку.

То, что вы хотите сделать, это с каждым циклом, потреблять маркер. Если этот маркер является двойным, примите ввод и продолжите, если нет, сообщите об ошибке и повторите. Попробуйте что-то вроде этого вместо этого, он должен представить более четкое представление о том, что сканер делает каждый цикл.

Обратите внимание, что я использую класс-оболочку Double , а не примат double . Это так, что я могу установить double в null, так как Double -это Object , а не примитив.

Проблема в том, что вы вызываете scanner.nextdouble(), который будет работать нормально, если и когда есть двойной вход. Когда на входе нет двойника, ваш вход, который был «KKK», игнорируется вызовом nextDouble(), и отображается ваше сообщение об ошибке, а затем, когда вы вызываете nextLine(), тот же вход «KKK» все еще ждет wo, когда вы возвращаетесь назад, в то время как «KKK» затем передается обратно в вашу программу, и поскольку он все еще не является двойным, вы получаете повторное сообщение об ошибке.

Это будет потреблять недопустимый ввод «KKK» и позволит программе продолжить работу должным образом.

Похожие вопросы:

Я изучаю Java, исходя из других языков программирования (Js, C и др..) Мне интересно, может ли при каких-либо обстоятельствах метод Scanner.next() возвращать (не бросая) недопустимую строку или.

Я пытаюсь использовать сканер, чтобы разобрать какой-то текст, но я продолжаю получать InputMismatchException. Я использую метод scanner.next(Pattern pattern) и хочу вернуть следующее n количество.

Я пытаюсь сканировать текст из читателя на основе разделителя ()() с помощью метода Scanner.next() . Вот мой код: public static void main(String[] args) < String buffer = i want this text()()without.

В настоящее время я работаю над программой Java, которая приносит базовый редактор конфигурационных файлов, работающий через командную строку. У меня есть 1 Проблема. Некоторые записи должны быть.

Я новичок в Java и имею список из 25 студентов, которые включают их имя, возраст, доход и IQ в текстовом файле. Я борюсь с тем, как взять этот текстовый файл и поместить его в массив, чтобы я мог.

У меня есть тест JUnit в Eclipse (я пробовал это с Junit 3 и JUnit 4), который проверяет метод, который анализирует файл, но по какой-то неизвестной мне причине он зависает или зависает, когда я.

Читать еще:  Как восстановить удаленные файлы с диска d

Javist

Свежие записи

Сканирование текста с java.util.Scanner

J2SE 5.0 добавляет классов и методов, которые можно делать каждый день задачи легче выполнять. В этом совете вы увидите, как недавно добавили java.util.Scanner класс делает его легче читать и анализировать строки и примитивных типов с использованием регулярных выражений.

Перед J2SE 5.0 релиз, вы, вероятно, пишет код, такой как следующий класс TextReader читать текст из файла:

public class TextReader <

private static void readFile ( String fileName ) <

File file = new File ( fileName ) ;

FileReader reader = new FileReader ( file ) ;

BufferedReader in = new BufferedReader ( reader ) ;

while (( string = in.readLine ()) != null ) <

> catch ( IOException e ) <

public static void main ( String [] args ) <

if ( args.length != 1 ) <

System.err.println ( «usage: java TextReader «

readFile ( args [ 0 ]) ;

Основной подход в классах, как это создать файл, объект, соответствующий фактический файл на жестком диске. Класс затем создает FileReader связанный с файлом, а затем BufferedReader от FileReader. Затем он использует BufferedFile читателя прочитать файл по одной строке за раз.

Для просмотра класс TextReader в действии, вы должны создать документ для данного класса чтения и синтаксического анализа. Чтобы создать документ, сохранить следующие две строки текста в файле с именем TextSample.txt в том же каталоге, TextReader:

Обобщение TextReader «. Затем запустите ее, введя следующее:

Вы должны увидеть оригинальный файл повторил обратно к вам в стандартный вывод.

Вы можете упростить код в TextReader помощью java.util.Scanner класс, который разбирает примитивных типов и строк:

public class TextScanner <

private static void readFile ( String fileName ) <

File file = new File ( fileName ) ;

Scanner scanner = new Scanner ( file ) ;

> catch ( FileNotFoundException e ) <

public static void main ( String [] args ) <

if ( args.length != 1 ) <

System.err.println ( «usage: java TextScanner1»

readFile ( args [ 0 ]) ;

Обобщение TextScanner. Затем запустите его следующим образом:

Вы должны получить следующие результаты:

TextScanner создает объект сканер из файла. Сканер перерывы содержимое файла в лексемы помощью разделяющем шаблоне, по умолчанию разделителем шаблон пробелом. TextScanner затем вызывает hasNext () в сканере. Этот метод возвращает значение «истина, если другой знак существует во входных сканера, как это имеет место, пока не достигнет конца файла. Следующий () возвращает строку, которая представляет собой следующий жетон. Так до достижения конца файла, TextScanner печатает строку, вернулись к следующему () на отдельной строке.

Вы можете изменить разделители, используемые для Разбивает вход, через useDelimiter метода сканера. Вы можете передать в строку или java.util.regex.Pattern методу. См. страницу Javadocs за образец для информации о том, что модели могут быть применены. Например, вы можете прочитать ввод одной строке за раз, используя символ новой строки (\ п) в качестве разделителя. Вот пересмотренный ReadFile () метод TextScanner который использует символы новой строки в качестве разделителя:

private static void readFile ( String fileName ) <

Scanner scanner = new Scanner ( new File ( fileName )) ;

> catch ( FileNotFoundException e ) <

Обратите внимание, что существуют и другие возможности для обнаружения конца строки. Можно, например, тест на линиях, которые заканчиваются символом новой строки или заканчиваться символом возврата каретки и символа новой строки. Вы можете сделать это с использованием регулярных выражений «\ R \ N | \ N». Javadocs для java.util.regex.Pattern показаны другие возможные терминаторы строки, так что более полная проверка будет использовать выражение «\ R \ п | [\ R \ N \ u2028 \ u2029 \ u0085]». Вы также можете использовать hasNextLine () и nextLine () методы из класса сканера. В любом случае, с пересмотренным TextScanner, результат должен соответствовать содержанию и макет TextSample.txt. Другими словами, вы должны увидеть следующее:

Простой смене шаблона в разделитель используются сканер дает вам большую силу и гибкость. Например, если задать следующий разделитель:

В ней написано весь файл сразу. Это похоже на хитрость предложила Пэт Нимайер java.net в своем блоге. Вы можете читать все содержимое веб-страницы без создания нескольких промежуточных объектов. Код следующий класс, WebPageScanner, говорится в текущем содержании java.net Домашняя страница:

public class WebPageScanner <

public static void main ( String [] args ) <

new URL ( «http://java.net» ) .openConnection () ;

String text = new Scanner (

useDelimiter ( «\Z» ) .next () ;

> catch ( IOException e ) <

Вы можете обрабатывать более строк с классом сканера. Вы также можете использовать сканер для анализа данных, который состоит из примитивов. Чтобы проиллюстрировать это, сохранить следующие три строки в файле с именем Employee.data (в том же каталоге, TextSample):

Вы все еще рассматривает это как одно большое струнных и выполнять переходы после разбора строки. Вместо этого, вы можете разобрать этот файл в два этапа. Это показано в следующем классе, DataScanner:

public class DataScanner <

private static void readFile ( String fileName ) <

new Scanner ( new File ( fileName )) ;

> catch ( FileNotFoundException e ) <

private static void parseLine ( String line ) <

Scanner lineScanner = new Scanner ( line ) ;

String name = lineScanner.next () ;

int age = lineScanner.nextInt () ;

boolean isCertified = lineScanner.nextBoolean () ;

System.out.println ( «It is » + isCertified +

» that » + name + «, age «

+ age + «, is certified.» ) ;

public static void main ( String [] args ) <

if ( args.length != 1 ) <

System.err.println ( «usage: java TextScanner2»

readFile ( args [ 0 ]) ;

Космический объект в DataScanner Сканер считывает файл по одной строке за раз. ReadFile () метод проходит каждую строку второго сканера. Второй сканера анализирует разделенные запятыми данные и удаляет пробелы с обеих сторон запятыми. Существуют варианты hasNext () и Next () методы, которые позволят вам проверить является ли следующий маркер определенного типа и пытаться лечить следующий знак в качестве примера такого рода. Например, nextBoolean () пытается относиться к следующей лексемы как логическое и пытается сопоставить его либо строка «Правда» или строку «ложным». Если матч не может быть сделано, генерируется java.util.InputMismatchException. ParseLine () Метод DataScanner показано, как каждая строка анализируется в строку, INT, и логическое значение.

Обобщение DataScanner. Затем запустите его следующим образом:

Вы должны получить следующие результаты:

Можно было бы попытаться использовать только запятой в качестве разделителя. Другими словами, вы можете попробовать следующее:

Это приведет к InputMismatchException. Это потому, что дополнительное пространство будет включено в знак того, что вы пытаетесь преобразовать в логические и пространства не совпадают ни с «истинным» или «ложь». Как и в случае со всеми приложениями регулярных выражений, основная власть требует, чтобы вы Уделите побольше внимания при построении вашей модели.

Для более подробной информации о сканере, см. официальную документацию.

Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.

Ссылка на основную публикацию
Adblock
detector