Java 在字符串中搜索常量+变量组合的序列
我有一个字符串S=aabb:1cc:2dd:30ee:149 如何循环字符串S和1乘1,获取以:开头的每个数字,并将它们保存在Int中 例如 所以我得到了输出:Java 在字符串中搜索常量+变量组合的序列,java,string,stringbuilder,Java,String,Stringbuilder,我有一个字符串S=aabb:1cc:2dd:30ee:149 如何循环字符串S和1乘1,获取以:开头的每个数字,并将它们保存在Int中 例如 所以我得到了输出: :1 :2 :30 :149 试试正则表达式 public static void main(String[] args) { String s = "AA AA BB :1 CC :2 DD :30 EE :149"; Pattern p = Pattern.compile(":\\d+"); Matcher
:1
:2
:30
:149
试试正则表达式
public static void main(String[] args) {
String s = "AA AA BB :1 CC :2 DD :30 EE :149";
Pattern p = Pattern.compile(":\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
}
O/p:
您可以使用 示例代码:
String s = "AA AA BB :1 CC :2 DD :30 EE :149";
Pattern p = Pattern.compile("(?<=:)\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
int number = m.group()
System.out.println(":"+number);
}
正则表达式模式解释:
(?<= look behind to see if there is
: ':'
) end of look-behind
\d+ digits (0-9) (1 or more times (most possible))
为了完成这项工作,并避免出现两个问题,无需使用正则表达式即可轻松实现:
String s = "AA AA BB :1 CC :2 DD :30 EE :149";
String[] parts = s.split(" ");
for(String part : parts) {
if(part.startsWith(":")) {
System.out.println(part);
}
}
这假设所需的输出是以:,而不仅仅是数字开头的任何内容,尽管可以很容易地升级以仅查找数字。使用正则表达式?您可以使用正则表达式、正则表达式:\d+和find来迭代搜索int,请参阅,使用StringSubString删除:,并将其解析为int。如果有问题,请尝试一些方法,在这里问吧!,但是先试试看!。并假设分隔符是一个空间。
(?<= look behind to see if there is
: ':'
) end of look-behind
\d+ digits (0-9) (1 or more times (most possible))
String s = "AA AA BB :1 CC :2 DD :30 EE :149";
String[] parts = s.split(" ");
for(String part : parts) {
if(part.startsWith(":")) {
System.out.println(part);
}
}