userInput.nextLine()
всегда возвращает всю строку одним куском, а userInput.next()
возвращает токен, используя ваш разделитель. Но тогда вам нужно прочитать входные данные в токене al oop по токену до ...
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws Exception
{
String sokvag;
//Creating scanner object for reading from input stream
Scanner userInput = new Scanner(System.in);
// Set delimiter to ':' or '/' or whitespace
userInput.useDelimiter("[:/\\s]+");
// Instructions to the user to type a windows patway ex: C://Windows/System/
System.out.print("Skriv in sökvägen: ");
do
{
//Input
sokvag = userInput.next();
//Print the result
System.out.println(sokvag);
}
while (????);
userInput.close();
}
}
Проблема в том, что вы не знаете, когда пользователь ввел последний токен (последнюю часть пути ).
Так что лучше продолжайте читать весь ввод одной строкой, а затем разбивайте его на части. Например:
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws Exception
{
String sokvag;
//Creating scanner object for reading from input stream
Scanner userInput = new Scanner(System.in);
// Instructions to the user to type a windows patway ex: C://Windows/System/
System.out.print("Skriv in sökvägen: ");
//Input
sokvag = userInput.nextLine();
String[] parts = sokvag.split("[:/\\s]+");
//Print the result
System.out.println(Arrays.toString(parts));
userInput.close();
}
}
Конечно, вы также можете перебирать массив частей для вывода содержимого строки построчно.