Разбить строку на цифры и символы - 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]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д