Java语言。查找字符串的所有号码。需要检查 [英] Java. Find all numbers in the String. Need check

查看:104
本文介绍了Java语言。查找字符串的所有号码。需要检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我有输入字符串:的 qwerty1qwerty2 的;

For example, I have input String: "qwerty1qwerty2";

作为输出我想有无的 [1,2] 的。

As Output I would like have [1,2].

下面我目前的执行情况:

My current implementation below:

import java.util.ArrayList;
import java.util.List;

public class Test1 {

    public static void main(String[] args) {
        String inputString = args[0];
        String digitStr = "";
        List<Integer> digits = new ArrayList<Integer>();

        for (int i = 0; i < inputString.length(); i++) {
            if (Character.isDigit(inputString.charAt(i))) {
                digitStr += inputString.charAt(i);
            } else {
                if (!digitStr.isEmpty()) {
                    digits.add(Integer.parseInt(digitStr));
                    digitStr = "";
                }
            }
        }
        if (!digitStr.isEmpty()) {
            digits.add(Integer.parseInt(digitStr));
            digitStr = "";
        }

        for (Integer i : digits) {
            System.out.println(i);
        }
    }
}

但仔细检查后,我dislake几点:

But after double check I dislake couple points:

  1. code重复的一些线路的两倍。

  1. Some lines of code repeat twice.

我用清单。我认为这不是很好的主意,更好地使用数组。

I use List. I think it is not very good idea, better using array.

那么,你怎么看?

你能提供什么建议?

推荐答案

使用RepalceAll

Use RepalceAll

String str = "qwerty1qwerty2";      
str = str.replaceAll("[^0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));

输出:

[1, 2]

如果您要包括 - AE减,加 -

If you want to include - a.e minus, add -?:

String str = "qwerty-1qwerty-2 455 f0gfg 4";      
str = str.replaceAll("[^-?0-9]+", " "); 
System.out.println(Arrays.asList(str.trim().split(" ")));

输出:

[-1, -2, 455, 0, 4]


说明

[^-?0-9]+

  • + 之间的一个,不限次数,多次越好,回馈在需要
  • - 人物之一 - ?
  • 0-9 A字符之间的0的范围和9
    • + Between one and unlimited times, as many times as possible, giving back as needed
    • -? One of the characters "-?"
    • 0-9 A character in the range between "0" and "9"
    • 这篇关于Java语言。查找字符串的所有号码。需要检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆