Java语言。查找字符串的所有号码。需要检查 [英] Java. Find all numbers in the String. Need check
本文介绍了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:
-
code重复的一些线路的两倍。
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屋!
查看全文