Delimiter with Java line of Input
24,872
You can use a single scanner with a custom delimiter:
input.useDelimiter("[,\\s]");
This makes the delimiter either a comma or a whitespace character.
So, your overall program would be:
import java.util.Scanner;
import java.util.ArrayList;
public class Delim
{
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
Scanner input = new Scanner(System.in);
input.useDelimiter("[,\\s]");
System.out.println("Enter a username: (format username,name,surname)");
list.add(input.next());
list.add(input.next());
list.add(input.next());
list.add(input.next());
System.out.println(list);
System.out.println("//debug: command " + list.get(0));
printName(list);
}
static void printName(ArrayList arr)
{
System.out.println("username: " + arr.get(1) + "\nname: " + arr.get(2) + "\nsurname: " + arr.get(3));
}
}
Author by
oCodaa
Updated on February 17, 2020Comments
-
oCodaa about 4 years
Hopefully this is very simple for someone, but I can't seem to work it out.
Trying to use an input of:
addperson jsmith,john,smith
So far I have used two
Scanner
objects with different delimiters, but I can't get it to work.
I don't want to scan whole line and split string.import java.util.Scanner; import java.util.ArrayList; public class Delim { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); Scanner input = new Scanner(System.in); Scanner inputCommand = new Scanner(System.in); input.useDelimiter(","); inputCommand.useDelimiter(" "); System.out.println("Enter a username: (format username,name, surname)"); list.add(inputCommand.next()); list.add(input.next()); list.add(input.next()); list.add(input.next()); System.out.println("//debug: command " + list.get(0)); printName(list); } static void printName(ArrayList arr) { System.out.println("username: " + arr.get(1) + "\nname: " + arr.get(2) + "\nsurname: " + arr.get(3)); } }