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

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

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

Доброго времени суток, не могу создать массив символов ( точнее массив создается но первое значение в нем пустота, это не критично и даже совсем не важно, но хочется все последовательно. Эта строчка (split("\\d+")) должна ведь выглядеть иначе верно ?
Листинг программы
  1. package Table;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.TextArea;
  5. import java.awt.TextField;
  6. import java.util.ArrayList;
  7. import javax.script.ScriptEngineManager;
  8. import javax.script.ScriptException;
  9. import javax.swing.JFrame;
  10.  
  11. public class Test
  12. {
  13. public JFrame window = new JFrame("Pegasum");
  14. //public TextArea imput = new TextArea();
  15. public TextField imput = new TextField();
  16. public ArrayList<String> arrNam = new ArrayList<String>();
  17. public Test()
  18. {
  19. window.setSize(800, 550);
  20. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21. window.getContentPane().setBackground(Color.white);
  22. window.setLayout(null);
  23. window.setResizable(false);
  24. window.setLocationRelativeTo(null);
  25. enter_area();
  26. window.setVisible(true);
  27. }
  28. private void enter_area()
  29. {
  30. imput.setFont(new Font("Arial", Font.BOLD, 18));
  31. imput.setBounds((800-480)/2, 116, 480, 25);
  32. imput.setText("18+18*18");
  33. imput.setBackground(Color.white);
  34. window.add(imput);
  35. String[] i = imput.getText().split("[+-/*]");// получаем массив цифр
  36. String[] a = imput.getText().split("\\d+");// здесь нужен массив символов
  37. System.out.println(i[0] +" "+ a[0] +" "+ i[1]);
  38. try
  39. {
  40. System.out.println(new ScriptEngineManager().getEngineByName("JavaScript").eval(imput.getText()));//можно и так решить все )
  41. }
  42. catch (ScriptException e)
  43. {
  44. //...
  45. }
  46. }
  47. public static void main(String[] args)
  48. {
  49. new Test();
  50. }
  51. }
и еще ни понимаю, если строчку написать вот так
Листинг программы
  1. imput.setText("18.6+18*18");
то на выходе не имею в массиве дробного числа 18.6 ведь делю строчку используя ограниченный набор символов
Листинг программы
  1. String[] i = imput.getText().split("[+-/*]");
как решается эта ситуация ?
чем дальше тем чудесее, изменил эту строчку и стали вноситься дробные числа, а ведь просто последовательность поменял
Листинг программы
  1. String[] i = imput.getText().split("[+*/-]");//[+-/*]
чем дальше тем чудесее, изменил эту строчку и стали вноситься дробные числа, а ведь просто последовательность поменял
Листинг программы
  1. String[] i = imput.getText().split("[+*/-]");//[+-/*]
тем вопрос про эту строчку, так разделители цифры, а как указать цифры с точкой ?
Листинг программы
  1. String[] a = imput.getText().split("(\\d+)");

Решение задачи: «Разбить строку на цифры и символы»

textual
Листинг программы
  1.         String[] i = imput.getText().split("[+*/-]");//[+-/*]
  2.         String[] a = imput.getText().split("[^+/*-]+");
  3.         System.out.println(i[0] +" "+ i[1] +" "+ i[2] +" "+ i[3] +" "+ i[4]);
  4.         System.out.println(a[0] +" "+ a[1] +" "+ a[2] +" "+ a[3] +" "+ a[4]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

14   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы