数学函数 Power from String ("2 power 3")
Math function Power from String ("2 power 3")
我必须在从 "2 power 3"
这样的字符串获取方程式时执行 pow 函数。我知道有函数 Math.pow(a, b)
并且我也可以使用 for loop
来实现这个,但问题是这两种方法都需要整数并且我在字符串中有等式。我不知道如何解析这个字符串并将两个变量分开。还有另一个问题。我的等式也可能变得有点复杂。例如它可能像 "2+3*5/5 power 2"
public class CalculationActivity extends AppCompatActivity {
EditText editText;
Button btnCalc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculation);
editText=findViewById(R.id.et_regular_dep);
btnCalc=findViewById(R.id.btnCalculate);
btnCalc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String equation= editText.getText().toString();
CalculateResult(equation);
}
});
}
private void CalculateResult(String equation) {
// here to perform power function
}
}
试试这个:
String eq = "2 power 3";
String no2 = eq.substring(eq.indexOf("power") + 6 , eq.length());
String no1 = eq.substring(0,eq.indexOf("power")-1);
Log.d("no1",no1);
Log.d("no2",no2);
Log.d("ans",Math.pow(Double.parseDouble(no1),Double.parseDouble(no2))+"");
另一种简单的方法
String eq = "2 power 3";
eq = eq.trim(); // if it has extra space at the start or end
String no1 = eq.split(" ")[0];
String no2 = eq.split(" ")[2];
Log.e("no1", no1);
Log.e("no2", no2);
Log.e("ans", Math.pow(Double.parseDouble(no1), Double.parseDouble(no2)) + "");
我必须在从 "2 power 3"
这样的字符串获取方程式时执行 pow 函数。我知道有函数 Math.pow(a, b)
并且我也可以使用 for loop
来实现这个,但问题是这两种方法都需要整数并且我在字符串中有等式。我不知道如何解析这个字符串并将两个变量分开。还有另一个问题。我的等式也可能变得有点复杂。例如它可能像 "2+3*5/5 power 2"
public class CalculationActivity extends AppCompatActivity {
EditText editText;
Button btnCalc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculation);
editText=findViewById(R.id.et_regular_dep);
btnCalc=findViewById(R.id.btnCalculate);
btnCalc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String equation= editText.getText().toString();
CalculateResult(equation);
}
});
}
private void CalculateResult(String equation) {
// here to perform power function
}
}
试试这个:
String eq = "2 power 3";
String no2 = eq.substring(eq.indexOf("power") + 6 , eq.length());
String no1 = eq.substring(0,eq.indexOf("power")-1);
Log.d("no1",no1);
Log.d("no2",no2);
Log.d("ans",Math.pow(Double.parseDouble(no1),Double.parseDouble(no2))+"");
另一种简单的方法
String eq = "2 power 3";
eq = eq.trim(); // if it has extra space at the start or end
String no1 = eq.split(" ")[0];
String no2 = eq.split(" ")[2];
Log.e("no1", no1);
Log.e("no2", no2);
Log.e("ans", Math.pow(Double.parseDouble(no1), Double.parseDouble(no2)) + "");