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));
    }
}
Share:
24,872
oCodaa
Author by

oCodaa

Updated on February 17, 2020

Comments

  • oCodaa
    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));
        }
    }