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