Разбить строку на цифры и символы - Java
Формулировка задачи:
Доброго времени суток, не могу создать массив символов ( точнее массив создается но первое значение в нем пустота, это не критично и даже совсем не важно, но хочется все последовательно. Эта строчка (split("\\d+")) должна ведь выглядеть иначе верно ?
то на выходе не имею в массиве дробного числа 18.6
ведь делю строчку используя ограниченный набор символов
как решается эта ситуация ?
package Table;
import java.awt.Color;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.TextField;
import java.util.ArrayList;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JFrame;
public class Test
{
public JFrame window = new JFrame("Pegasum");
//public TextArea imput = new TextArea();
public TextField imput = new TextField();
public ArrayList<String> arrNam = new ArrayList<String>();
public Test()
{
window.setSize(800, 550);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setBackground(Color.white);
window.setLayout(null);
window.setResizable(false);
window.setLocationRelativeTo(null);
enter_area();
window.setVisible(true);
}
private void enter_area()
{
imput.setFont(new Font("Arial", Font.BOLD, 18));
imput.setBounds((800-480)/2, 116, 480, 25);
imput.setText("18+18*18");
imput.setBackground(Color.white);
window.add(imput);
String[] i = imput.getText().split("[+-/*]");// получаем массив цифр
String[] a = imput.getText().split("\\d+");// здесь нужен массив символов
System.out.println(i[0] +" "+ a[0] +" "+ i[1]);
try
{
System.out.println(new ScriptEngineManager().getEngineByName("JavaScript").eval(imput.getText()));//можно и так решить все )
}
catch (ScriptException e)
{
//...
}
}
public static void main(String[] args)
{
new Test();
}
}
и еще ни понимаю, если строчку написать вот так
imput.setText("18.6+18*18");String[] i = imput.getText().split("[+-/*]");
чем дальше тем чудесее,
изменил эту строчку и стали вноситься дробные числа, а ведь просто последовательность поменял
String[] i = imput.getText().split("[+*/-]");//[+-/*]
чем дальше тем чудесее,
изменил эту строчку и стали вноситься дробные числа, а ведь просто последовательность поменял
String[] i = imput.getText().split("[+*/-]");//[+-/*]
тем вопрос про эту строчку, так разделители цифры, а как указать цифры с точкой ?
String[] a = imput.getText().split("(\\d+)");Решение задачи: «Разбить строку на цифры и символы»
textual
Листинг программы
String[] i = imput.getText().split("[+*/-]");//[+-/*]
String[] a = imput.getText().split("[^+/*-]+");
System.out.println(i[0] +" "+ i[1] +" "+ i[2] +" "+ i[3] +" "+ i[4]);
System.out.println(a[0] +" "+ a[1] +" "+ a[2] +" "+ a[3] +" "+ a[4]);