String str="(12+2)*3";
String result="";
int a,b,c;
//将字符串中的非数字字符转换为空格
for(int i=0;i
result+=str.charAt(i);
}else{
result+=' ';
}
}
String[] arrStr=result.trim().split("\\s+");//去掉前后空格后,再以空格分割字符串
a=Integer.parseInt(arrStr[0]);
b=Integer.parseInt(arrStr[1]);
c=Integer.parseInt(arrStr[2]);
System.out.printf("a=%d,b=%d,c=%d",a,b,c);//输出a=12,b=2,c=3
先找一个判断出是否是数字的正则表达式。 然后遍历你的字符串,一个一个去对比,如果是数字,就提出来。 思路是这样。 String str = "Vz0-Ra0-Sz05.7sc"; for(int i=0;i
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test{
public static void main(String[] args) {
String str = "(12+2)*3";
int a=0,b=0,c=0,count=0;;
Matcher m = Pattern.compile("\\d+").matcher(str);
while (m.find()) {
count++;
if (count==1) {
a = Integer.parseInt(m.group());
}else if (count==2) {
b = Integer.parseInt(m.group());
}else{
c = Integer.parseInt(m.group());
}
}
System.out.println(a+","+b+","+c);
}
}
找人给你写个正则表达式吧