ADD file via upload

pull/3/head
hnu202326010305 1 week ago
parent fee2ec55d5
commit 345f15cf6a

@ -0,0 +1,51 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class ExpressionBuilder {
private static final Random RANDOM = new Random();
private static final String[] OPERATORS = {"+", "-", "*", "/"};
// 生成基础四则运算表达式
public String generateBasicExpression(int count) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append(RANDOM.nextInt(100) + 1);
if (i < count - 1) {
sb.append(" ").append(OPERATORS[RANDOM.nextInt(OPERATORS.length)]).append(" ");
}
}
return sb.toString();
}
// 获取表达式中数字的位置
public List<Integer> getNumberPositions(String expression) {
String[] tokens = expression.split(" ");
List<Integer> positions = new ArrayList<>();
for (int i = 0; i < tokens.length; i++) {
if (isNumber(tokens[i])) positions.add(i);
}
return positions;
}
// 检查是否存在除零
public boolean hasDivideByZero(String expression) {
String[] tokens = expression.split(" ");
for (int i = 0; i < tokens.length - 1; i++) {
if (tokens[i].equals("/")) {
try {
if (Integer.parseInt(tokens[i + 1]) == 0) return true;
} catch (NumberFormatException e) {
//
}
}
}
return false;
}
//判断是否为数字位
private boolean isNumber(String token) {
try { Integer.parseInt(token); return true; }
catch (NumberFormatException e) { return false; }
}
}
Loading…
Cancel
Save