See also the ScriptEngine
.

import java.awt.*;
import java.awt.event.*;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.*;
class EvaluateString {
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
JPanel gui = new JPanel(new BorderLayout(5,5));
final JTextField input = new JTextField(
"Math.pow(2.6,22)+ Math.pow(3.9,15)",19);
final JTextField output = new JTextField(15);
output.setEditable(false);
gui.add(input, BorderLayout.CENTER);
gui.add(output, BorderLayout.PAGE_END);
// obtain a reference to the JS engine
final ScriptEngine engine = new
ScriptEngineManager().getEngineByExtension("js");
ActionListener calculate = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String s = ((Double)engine.eval(input.getText())).toString();
output.setText(s);
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
};
input.addActionListener(calculate);
JOptionPane.showMessageDialog(null, gui);
}
};
// Swing GUIs should be created and updated on the EDT
// http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
SwingUtilities.invokeLater(r);
}
}