先写一个方法生成1-9随机位置放加减的字符串
public static String getstr(){
Random rand = new Random();
StringBuilder sbu = new StringBuilder("1");
String[] op = {"","+","-"};
for(int i = 2; i < 10; i++){
sbu.append(String.format("%s%d",op[rand.nextInt(op.length)],i));
}
return sbu.toString();
}
使用这个方法生成字符串并判断和是否为100;
public static void main(String[] args){
while(true){
String str = getstr();
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(str);
int sum = 0;
while (m.find()){
sum += Integer.valueOf(m.group());
}
if(sum == 100){
System.out.printf("%s = %d%n",str,sum);
break;
}
}
}