如何在字符串中的括号([])之间获取数字

时间:2014-09-10 13:02:23

标签: java

我有一个类似的字符串:

String msg = "[05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16]";

我需要在阵列中获取数字之间的数字。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

伪代码:

String replace '[' with ''
String replace ']' with ''
String split at ' '

答案 1 :(得分:1)

您可以使用简单的正则表达式查找所有数字:

String msg = "[05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16]";
Matcher matcher = Pattern.compile("[0-9]+").matcher(msg);
while (matcher.find()) {
        System.out.println(matcher.group());
}

如果解析括号中的数字并且不解析字符串中的所有数字非常重要,那么您可以使用此变体:

String msg = "[05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16]";
Matcher m = Pattern.compile("\\[([0-9]+)\\]").matcher(msg);
while (m.find()) {
   System.out.println(m.group(1));
}

在这两种情况下,输出都是相同的:

05
06
07
08
09
10
11
12
13
14
15
16

答案 2 :(得分:0)

你也可以使用String Tokenizer:

String msg = "[05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16]";
StringTokenizer st = new StringTokenizer(msg, "[,], ");

while(st.hasMoreTokens()){
     System.out.println("Token: "+ st.nextToken());
}

输出:

Token: 05
Token: 06
Token: 07
Token: 08
Token: 09
Token: 10
Token: 11
Token: 12
Token: 13
Token: 14
Token: 15
Token: 16