希望这对某人来说非常简单,但我似乎无法解决。
尝试使用以下输入:
addperson jsmith,john,smith
到目前为止,我已经使用了两个具有不同分隔符的 Scanner
对象,但我无法让它工作。
我不想扫描整行并分割字符串。
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));
}
}
最佳答案
您可以使用带有自定义分隔符的单个扫描仪:
input.useDelimiter("[,\\s]");
这使得分隔符可以是逗号或空白字符。
因此,您的总体计划将是:
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));
}
}
关于java - Java 输入行的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356213/