Метод useDelimiter
Метод useDelimiter класса Scanner устанавливает
разделитель, который будет использоваться для разбиения
входных данных на отдельные токены. По умолчанию разделителем
является пробел. Первым параметром метод принимает шаблон
разделителя - это может быть строка или объект Pattern.
Метод возвращает тот же самый объект Scanner, что
позволяет вызывать методы цепочкой.
Синтаксис
scanner.useDelimiter(pattern)
Пример
Давайте установим в качестве разделителя запятую и прочитаем все токены из строки:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String str = "abcde,12345";
Scanner scanner = new Scanner(str);
scanner.useDelimiter(",");
while (scanner.hasNext())
{
System.out.println(scanner.next());
}
scanner.close();
}
}
Результат выполнения кода:
"abcde"
"12345"
Пример
Давайте установим в качестве разделителя регулярное выражение, которое соответствует запятой или точке с запятой:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String str = "abcde,12345;67890";
Scanner scanner = new Scanner(str);
scanner.useDelimiter("[,;]");
while (scanner.hasNext())
{
System.out.println(scanner.next());
}
scanner.close();
}
}
Результат выполнения кода:
"abcde"
"12345"
"67890"
Пример
Давайте прочитаем числа из строки, где разделителем является последовательность пробелов:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String str = "1 2 3 4";
Scanner scanner = new Scanner(str);
scanner.useDelimiter("\\s+");
int sum = 0;
while (scanner.hasNextInt())
{
sum += scanner.nextInt();
}
System.out.println(sum);
scanner.close();
}
}
Результат выполнения кода:
10