Разбить строку на цифры и символы - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, не могу создать массив символов ( точнее массив создается но первое значение в нем пустота, это не критично и даже совсем не важно, но хочется все последовательно. Эта строчка (split("\\d+")) должна ведь выглядеть иначе верно ?
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");
то на выходе не имею в массиве дробного числа 18.6 ведь делю строчку используя ограниченный набор символов
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]);

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы