• Музыка для кодинга, под что вы программируете?

    @Copperfield
    Android dude
    Для себя заметил, что нужно выбирать музыку, текст песен которых ты не знаешь.
    Так проще войти в состояние потока. А иначе сидишь и только и делаешь, что мысленно подпеваешь своим любимым исполнителям.
    Ответ написан
    1 комментарий
  • Как из строки вытащить оператор "+"?

    Если ты имеешь в виду разделить строку на символы по знаку, то тебе нужен метод split(String regex):

    String a "5+3";
    String[] a1 = a.split("");
    System.out.println(a1[0]);
    System.out.println(a1[1]);
    System.out.println(a1[2]);

    Вывод:
    5
    +
    3

    Поясняю: метод split(String regex) разделяет строку по символу(-ам), который ты поставишь в качестве аргумента. Возвращает этот метод массив из полученных строк. Если ты вставишь в виде аргумента пустую строку, то он вернет массив из символов строки "5+3": {"5", "+", "3"} ! А дальше ты сможешь сделать с ними уже что захочешь)
    Ответ написан
    Комментировать
  • Как из строки вытащить оператор "+"?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если по простому - разбивайте строку через regexp.
    String text = "5+(2-3*8/10)/123=ERR";
    		Pattern pattern = Pattern.compile("[+|\\-|\\*|/|=|\\(|\\)]");
    		Matcher matcher = pattern.matcher(text);
    		
    		int prev = 0;
    		while(matcher.find()) {
    			String operator = text.substring(matcher.start(), matcher.end());
    			String operand = text.substring(prev, matcher.start());
    			System.out.printf("Operand: '%s', operator: '%s'\n", operand, operator);
    			prev = matcher.end();
    		}
    		if(prev > 0 && prev < text.length()) {
    			String last = text.substring(prev, text.length());
    			System.out.printf("Last: %s\n", last);
    		}


    Operand: '5', operator: '+'
    Operand: '', operator: '('
    Operand: '2', operator: '-'
    Operand: '3', operator: '*'
    Operand: '8', operator: '/'
    Operand: '10', operator: ')'
    Operand: '', operator: '/'
    Operand: '123', operator: '='
    Last: ERR

    Ну а если по взрослому - то вам в antlr - https://www.antlr.org/ или javaCC - https://javacc.github.io/javacc/

    ЗЫ. для antlr есть фал грамматики для калькулятора - https://github.com/antlr/grammars-v4/tree/master/c...
    И на почитать - https://www.baeldung.com/java-antlr
    Ответ написан
    Комментировать
  • Как здесь работает this?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Вы создали класс SimpleGuilB и имплементировали в него интерфейс ActionListener который говорит о том что необходимо реализовать метод actionPerformed().
    Дальше в вашем классе SimpleGuilB вы говорите button.addActionListener() т.е. сообщаете кнопке куда должны передаться события от кнопки и как аргумент сообщаете this. This говорит о том что грубо говоря "я\меня" т.е. именно этот созданный экземпляр класса SimpleGuilB который реализовал ActionListener .

    Т.е. проще говоря this внутри класса говорит что это "я\меня\мое\у меня" у экземпляра.
    В другом случае вы могли создать реализацию ActionListener примерно так
    public class SimpleGuilB{ 
    ... код
    public void go(){
    ...
    button.addActionListener(new ButLister()); 
    }
    }
    
    public class ButLister implements ActionListener{
    public void actionPerformed(ActionEvent event){
            System.out.println("fjgji");
        }
    }
    Ответ написан
    1 комментарий
  • Как здесь работает this?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    УКАЗЫВАЕТ НА ЭКЗЕМПЛЯР ОБЪЕМЛЮЩЕГО КЛАССА!
    Ответ написан
    3 комментария