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

时间:2017-03-22 06:01:23

标签: java replaceall

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

  • 如果用户输入D,则应删除最后一行
  • 如果他们输入D 2则会删除索引2
  • 如果他们输入D 2 5,那么程序应该删除a中的第2~5行 他们正在编辑的文本文件。

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

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。

5 个答案:

答案 0 :(得分:1)

 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);

答案 1 :(得分:1)

将字符串拆分一个或多个空格

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

答案 2 :(得分:0)

尝试使用String#split

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

这会按空格拆分String。现在,您可以使用array[index]访问其中的部分内容。

答案 3 :(得分:0)

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);

答案 4 :(得分:0)

  

如何确定用户输入两个号码的时间。

您可以接受用户输入,然后通过检查&#34;参数的数量来验证字符串&#34;

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");
}