更新时间:2023-02-26 15:58:47
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Mini {
public static void main(String[] args) {
int a = 0;
int b = 0;
int c = 0;
String formula = " -x^2 + 6x - 5";
formula = formula.replaceAll(" ", "");
if (!formula.startsWith("+") && !formula.startsWith("-"))
formula = "+" + formula;
String exp = "^((.*)x\\^2)?((.*)x)?([\\+\\s\\-\\d]*)?$";
Pattern p = Pattern.compile(exp);
Matcher m = p.matcher(formula);
System.out.println("Formula is " + formula);
System.out.println("Pattern is " + m.pattern());
while (m.find()) {
a = getDigit(m.group(2));
b = getDigit(m.group(4));
c = getDigit(m.group(5));
}
System.out.println("a: " + a + " b: " + b + " c: " + c);
}
private static int getDigit(String data) {
if (data == null) {
return 0;
}
else
{
if (data.equals("+"))
{
return 1;
}
else if (data.equals("-"))
{
return -1;
}
else
{
try
{
int num = (int) Float.parseFloat(data);
return num;
}
catch (NumberFormatException ex)
{
return 0;
}
}
}
}
}