Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 15:59   #1
samouelson
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 46
Радость Сосчитать выражение введённое пользователем с клавиатуры

Доброго времени суток. Как заставить сосчитать программу выражение, например (18-3*6+2*(2+3)), которое ввел пользователь?

Код:
import java.util.Scanner;

public class Test
{
	public static void main( String[] args )
	{		
		String s = "Sum = " + (18-3*6+2*(2+3)) ; 
                System.out.println( s ); // в результате получаем "Sum = 10". Все отлично мне это очень нравится
	}
}
Код:
import java.util.Scanner;

public class Test
{
	public static void main( String[] args )
	{
                Scanner input = new Scanner( System.in );
		String  inp = input.nextLine(); // пользователь вводит (18-3*6+2*(2+3))

		String s = "Sum = " + (inp) ; // Я хотел бы чтобы здесь программа сосчитала значение введенного пользователем выражения.
                System.out.println( s ); // в результате получаем "Sum = (18-3*6+2*(2+3))". 	
	}
}
samouelson вне форума Ответить с цитированием
Старый 04.04.2013, 16:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А Вы поиском зря не пользуетесь..

загляните в эту тему:
Алгоритм выполнения операций над числами в одной строке.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2013, 17:02   #3
samouelson
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 46
По умолчанию

Может есть решения задачи попроще, используя
Код:
String s = "Sum = " + (18-3*6+2*(2+3)) ;
?
Иначе получается практически бесполезной данная особенность.
samouelson вне форума Ответить с цитированием
Старый 04.04.2013, 17:14   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

http://stackoverflow.com/questions/2...g-eval-in-java
Carbon вне форума Ответить с цитированием
Старый 04.04.2013, 18:28   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
String s = "Sum = " + (18-3*6+2*(2+3)) ;
Иначе получается практически бесполезной данная особенность.
Как особенность то?!! Что можно выражения писать?!
Так ваше выражение посчитает компилятор Java.
В код программы (jar) попадёт уже ГОТОВЫЙ результат.

Не капризничайте. Вам дали ссылки, примеры... И это вы называете "слишком сложно"?!! ОМГ! Это Вы сложный код не видели ещё!
Но, если Вам сложно, так в чём проблема? Значит, не используйте и не считайте выражение. Всё в ваших руках!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2013, 22:00   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

http://www.javaranch.com/journal/200...l200711.jsp#a4
Можно еще сделать посложнее: заюзать asm и самому руками класс сгенерить, но будет то же самое.

Последний раз редактировалось Carbon; 04.04.2013 в 22:03.
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление двух чисел, введенных пользователем с клавиатуры Шизофрения Общие вопросы C/C++ 4 02.12.2012 21:58
Вычислить интеграл введенный с клавиатуры пользователем,методом Симпсона(параболы).PascalABC Sanginow Помощь студентам 0 16.04.2012 12:56
Сосчитать количество dumaika Microsoft Office Excel 6 30.04.2010 12:31
Как разделить введённое n значное число на отдельны цифры? mig-29 Общие вопросы C/C++ 5 22.05.2009 16:30
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01