如何从 Java 中的字符串中获取单独的数字?

How do get separate digits from a string in Java?

我正在处理文件编辑器项目,需要确定用户何时输入数字。

我遇到的问题是如何确定用户何时输入了两个数字。到目前为止我有这个

input = keyboard.nextLine();
String digit = input.replaceAll("[^0-9]", "");

    if(!(digit.equals(""))){
       n = Integer.parseInt(digit);
                        //and so on
    }

因此,如果我输入 D 2 5,数字是 25,我需要一种方法让它将 2 和 5 作为单独的数字读取。

 Pattern p = Pattern.compile("[0-9]+");
 String myString = " d 5 6";
 Matcher m = p.matcher(myString);
 List abc = new ArrayList();
 while (m.find()) 
 {
    int n = Integer.parseInt(m.group());
    abc.add(n);
 }     
 System.out.println(abc);

将字符串拆分为一个或多个 space

String[] digit = s.split(" +");

尝试使用 String#split

String s = "D 2 5";
String array[] = s.split(" ");

这会将 String 拆分为 space。现在,您可以使用 array[index] 访问它的各个部分。

String str = "     D    2     5";
        String array[] = str.replace(" ", "").split("");
        List<Integer> numbers=new ArrayList<Integer>();
        for (String item : array) {
            try {
                numbers.add(Integer.parseInt(item));
            } catch (Exception e) {
                continue;
            }
        }
        System.out.println(numbers);

how to determine when a user inputs two numbers.

您可以获取用户输入,然后通过检查 "parameters"

的数量来验证字符串
String input = "D 3 9";

String[] arrayParam = input.split(" ");

if(arrayParam.lenght==2){
    System.out.println("1 number only");
}elseif(arrayParam.lenght==3){
    System.out.println("2 numbers");
}else{
    System.out.println("invalid input");
}