Как сделать умножение в java

Обновлено: 04.07.2024

У меня примерно следующее:

Я бы хотел добавить i "0" в someNum строка. Есть ли способ умножить строку, чтобы повторить ее, как это делает Python?

Так что я мог просто пойти:

или что-то подобное?

Где в этом случае мой окончательный результат будет:

Самый простой способ в простой Java без зависимостей - это следующая однострочная строка:

Заменить поколение с количеством повторений, а "-" со строкой (или символом), которую вы хотите повторить.

Вот образец, который нужно скопировать и вставить:

  • 1 Хороший трюк! Один лайнер всегда хорош ..
  • Я искал это много лет и вот наконец нашел.
  • Для меня это работало только с '\u0000' вместо того '\0'

Нет, но в Scala можно! (А затем скомпилируйте это и запустите, используя любую реализацию Java . )

Теперь, если вы хотите сделать это простым способом в java, используйте пакет Apache commons-lang. Предполагая, что вы используете maven, добавьте эту зависимость в свой pom.xml:

А затем используйте StringUtils.repeat следующим образом:

  • 6 как вы решили, что он использует maven? :)
  • 5 Вы должны сделать некоторые предположения, чтобы решить проблемы реального мира. В этом случае я использую maven в своем текущем проекте. У меня установлен pom.xml с зависимостью commons-lang. Короче говоря, мне было легче ответить на его вопрос. И я не совсем уверен, что бы я делал, если бы я не использовал maven - я думаю, мне пришлось бы создать настраиваемое местоположение для моих файлов jar . похоже на репозиторий maven! А затем включите эти jar-файлы в мой путь к классам и выполняйте все виды работы, которых я люблю избегать. Если автор действительно хочет взломать java, то ему или ей нужно использовать maven или его эквивалент. :)
  • org.apache.commons commons-lang3 была бы более "современная" версия

На ум приходят два способа:

Путь 2 можно сократить до:

Если вы повторяете отдельные символы, такие как OP, и максимальное количество повторов не слишком велико, вы можете использовать простую операцию с подстрокой, подобную этой:

Нет. В Java нет этой функции. Вам нужно будет создать свою строку с помощью StringBuilder и какого-то цикла.

Простой способ сделать это.

  • 1 Почему это было отклонено? Вот что бы я сделал. Вроде действительно просто!
  • 6 Действительно следует использовать StringBuilder. Подобная конкатенация строк довольно затратна.
  • Я добавил StringBuilder.

Использовать String::repeat в Java 11 и новее.

Примеры

И пример из Вопроса.

Java 8 предоставляет способ (хотя и немного неуклюжий). Как метод:

или менее эффективно, но красивее ИМХО:

Я создал метод, который делает то же самое, что и вы, можете попробовать это:

  • +1. Рекурсии - это всегда приятно. И это самый короткий вариант, который изначально работает в Groovy Jenkinsfile или в Groovy-скрипте проекта Jenkins Pipeline (я немного подправил его с вашего ожидаемого разрешения).
  • 1 Разве ты не можешь просто использовать String.join а также java.util.Collections.nCopies ?
  • @SolomonUcko, да, в Java 8. (На момент публикации последней версии была 6).

Я не верю, что Java изначально предоставляет эту функцию, хотя было бы неплохо. Иногда я пишу код на Perl, и x Оператор в Perl очень удобен для повторения строк!

Однако StringUtils в commons-lang предоставляет эту функцию. Метод называется repeat() . Единственный другой вариант - создать его вручную с помощью цикла.

Нет, не можешь. Однако вы можете использовать эту функцию для повторения символа.

Отказ от ответственности: я напечатал это здесь. Могут быть ошибки.

Обобщение ответа Дэйва Хартнолла (я в основном использую концепцию ad absurdum, возможно, не используйте ее ни в чем, где вам нужна скорость). Это позволяет заполнить Строку символами i по заданному шаблону.

Если вам не нужен шаблон, а просто любой отдельный символ, вы можете его использовать (это немного быстрее):

Аналогично тому, что уже было сказано:

Ввод multStuff('123', '0', 3);

  • 3 Почему бы просто не сделать i = 0 а также i ?

мы можем создавать несколько строк, используя * в python, но не в java, вы можете использовать цикл for в своем случае:

Мы можем легко найти произведение двух чисел с плавающей запятой в Java. Давайте рассмотрим 2 различных способа сделать это. Метод-1 : Умножение с помощью оператора ” * ” Мы можем легко найти произведение, просто…

Автор оригинала: Rajashekhar Valipishetty.

Мы можем легко найти произведение двух чисел с плавающей запятой в Java.

Давайте рассмотрим 2 различных способа сделать это.

Метод-1: Умножение с использованием оператора ‘*’

Мы можем легко найти продукт, просто используя оператор '*' . Он берет два операнда и умножает их.

Ниже приведен код реализации программы.

Метод-2: Умножение с использованием определенного пользователем метода

Мы можем умножить два числа с плавающей запятой, используя определенный пользователем метод.

Процесс полностью такой же, здесь мы создаем только пользовательский метод и будем использовать ту же логику внутри пользовательского метода. Нам нужно вызвать метод, чтобы получить результат.

Ниже приведен код реализации программы.

Вам нужна профессиональная помощь в написании кода на языке программирования Java? Учебник Примеры программирования на Java для начинающих и экспертов значительно улучшит ваши навыки программирования, после чего вы сможете программировать для любой логики на Java.

Каждый тип данных имеет диапазон значений. Компилятор выделяет пространство памяти для каждой переменной или константы в соответствии с её типом данных. Java предоставляет восемь примитивных типов данных для числовых значений, символов и логических значений. В этом разделе представлены числовые типы данных и операторы.

В таблице перечислены шесть числовых типов данных, их диапазоны и размеры их хранения.

Отрицательный диапазон: от -3.4028235E + 38 до -1.4E - 45

Положительный диапазон: от 1.4E - 45 до 3.4028235E + 38

Отрицательный диапазон: от -1.7976931348623157E + 308 до -4.9E - 324

Положительный диапазон: от 4.9E - 324 до 1.7976931348623157E + 308

Примечание: IEEE 754 является стандартом, утвержденным Институтом инженеров по электротехнике и электронике для представления на компьютерах чисел с плавающей запятой. Стандарт широко принят. Java использует 32-разрядный IEEE 754 для типа float и 64-разрядный IEEE 754 для типа double. Стандарт IEEE 754 также определяет специальные значения с плавающей запятой, которые перечислены в Приложении E.

Целочисленные типы

Java использует четыре типа целых чисел: byte, short, int и long. Выбирайте тип, который больше всего подходит для вашей переменной. Например, если вы знаете, что целое число, хранимое в переменной, находится в диапазоне байта, объявите переменную как byte. Для простоты и последовательности, большую часть времени на этом сайте мы будем использовать для целых чисел тип int.

Типы с плавающей запятой

Java использует два типа чисел с плавающей запятой: float и double. Тип double в два раза больше чем float. Поэтому double известен как число с двойной точностью, а float – как число с одинарной точностью. Обычно вам следует использовать тип double, поскольку он более точен чем тип float.

2. Считывание чисел с клавиатуры

Вы знаете как использовать метод nextDouble() из класса Scanner для считывания значения double с клавиатуры. Вы также можете использовать методы, представленные в следующей таблице, для чтения чисел типов byte, short, int, long и float:

Метод Описание
nextByte() прочитать число типа byte
nextShort() прочитать число типа short
nextInt() прочитать число типа int
nextLong() прочитать число типа long
nextFloat() прочитать число типа float
nextDouble() прочитать число типа double

Далее примеры для чтения данных различного типа с клавиатуры:

Если вы введёте значение из некорректного диапазона или формата, случиться ошибка выполнения. Например, в строке 3 вы введёте 128, произойдёт ошибка, поскольку 128 находится вне диапазона чисел типа byte.

3. Числовые операторы

Операторы +, -, *, /, % и операнды

Операторы для числовых типов данных включают стандартные арифметические операторы: сложение (+), вычитание (–), умножение (*), деление (/) и остаток от деления (%).

Имя Значение Пример Результат
+ Сложение 34 + 1 35
- Вычитание 34.0 - 0.1 33.9
* Умножение 300 * 30 9000
/ Деление 1.0 / 2.0 0.5
% Остаток от деления 20 % 3 2

Целочисленное деление

Когда оба операнда деления (делимое и делитель) являются целыми числами, результатом деление будет частное без дробной части. Например, 5 / 2 даёт 2, а не 2.5, а -5 / 2 даёт -2, а не -2.5. Для выполнения деления с плавающей точкой один из операндов должен быть числом с плавающей запятой. Например, 5.0 / 2 даёт 2.5.

Оператор %, известный как остаток от деления, или оператор модуля, даёт остаток после деления. Операндом слева – это делимое, а операнд справа – делитель. Поэтому 7 % 3 даёт 1, 3 % 7 даёт 3, 12 % 4 даёт 0, 26 % 8 даёт 2 и 20 % 13 даёт 7.


Оператор % часто используется для положительных целых чисел, но также может использоваться для отрицательных и значений с плавающей запятой. Остаток от деления является отрицательным только если отрицательным является делимое. Например, -7 % 3 даёт -1, -12 % 4 даёт 0, -26 % -8 даёт -2 и 20 % -13 даёт 7.

Остаток от деления очень полезен в программировании. Например, чётные числа % 2 всегда 0, а нечётные числа % 2 всегда 1. Так вы можете использовать это свойство для определения, является ли число чётным или нечётным. Если сегодня суббота, то суббота снова будет через 7 дней. Предположим, вы и ваши друзья собираетесь встретиться через 10 дней. Какой день будет через 10 дней? Вы можете узнать, что будет вторник используя следующее выражение:


Следующая программа считает сколько минут и секунд содержится в количестве введённых секунд. Например, 500 секунд содержат 8 минут и 20 секунд.




Метод nextInt() (строка 8) считывает число для seconds. Строка 10 получает минуты используя seconds / 60. Строка 11 (seconds % 60) получает оставшиеся секунды без минут.

Унарные и бинарные операторы

Операторы + и - могут быть как унарными, так и бинарными. Унарный оператор имеет только один операнд; а бинарные – два. Например, оператор - в -5 – это унарный оператор, показывающей, что число 5 является отрицательным, в то время как оператор - в 4 - 5 является бинарным оператор для вычитания 5 из 4.

4. Операции возведения в степень

Метод Math.pow(a, b) может использоваться для вычисления a b . Метод pow определён в классе Math в Java API. Этот метод вызывается с использованием синтаксиса Math.pow(a, b) (например, Math.pow(2, 3)), который возвращает результата a b (2 3 ). Здесь a и b являются параметрами для метода pow, а числа 2 и 3 настоящими значениями, используемыми для вызова метода. Например:

В одной из последующих главах будут даны дополнительные подробности о методах. На данный момент всё, что вам нужно знать, это как вызывать метод pow для выполнения операций возведения в степень.

В этой части курса мы обсуждаем математику в JavaScript — как мы можем использовать operators (en-US) и другие функции, чтобы успешно манипулировать числами для выполнения наших задач.

Необходимые условия: Базовая компьютерная грамотность, базовое понимание HTML и CSS, понимание того, что такое JavaScript.
Цель: Ознакомление с основами математики в JavaScript.

Все любят математику

Хорошо, может быть, не все. Некоторые из нас любят математику, некоторые из нас ненавидели математику с тех пор, как мы изучали таблицу умножения в школе, а некоторые из нас находятся где-то между ними. Но никто из нас не может отрицать, что математика является фундаментальной частью жизни, и мы не можем обойтись без неё. Это особенно актуально, когда мы учимся программировать на JavaScript (или на любом другом языке, если на то пошло) — большая часть того, что мы делаем, опирается на обработку числовых данных, вычисление новых значений и т.д. Так что не удивительно, что JavaScript имеет полнофункциональный набор математических функций.

В этой статье обсуждаются только основные разделы, которые вам нужно знать сейчас.

Типы чисел

В программировании даже скромная система десятичных чисел, которую мы все так хорошо знаем, сложнее, чем вы думаете. Мы используем разные термины для описания различных типов десятичных чисел. Например:

  • Целые — это целые числа, такие как: 10, 400, или -5.
  • С плавающей точкой(или: с плавающей запятой) — имеют целую и дробную части, например: 12.5 или 56.7786543.
  • Doubles — тип чисел с плавающей точкой, которые имеют большую точность, чем стандартные числа с плавающей точкой (что означает, что они точны для большего числа десятичных знаков).

У нас даже есть разные типы числовых систем:

Прежде чем взорвётся ваш мозг, остановитесь прямо здесь и сейчас!

Во-первых, мы просто будем придерживаться десятичных чисел на протяжении всего курса; вы редко когда будете сталкиваться с необходимостью думать в других числовых системах, если вообще когда-либо с ней столкнётесь.

Во-вторых, в отличие от некоторых других языков программирования, JavaScript имеет только один тип данных для чисел, как вы догадались это Number . Это означает, независимо от типа чисел, с которыми вы работаете в JavaScript, обрабатывать вы их будете точно так же.

Для меня всё — числа

Давайте быстро поиграем с некоторыми числами, чтобы снова познакомиться с основным синтаксисом, который нам нужен. Введите команды, перечисленные ниже, в вашу консоль (developer tools JavaScript console), или используйте простую встроенную консоль.

    Прежде всего, давайте объявим пару переменных и инициализируем их целым числом и числом с плавающей точкой, соответственно, затем введите имена переменных обратно, чтобы проверить, что все в порядке:

Арифметические операторы

Арифметические операторы — это основные операторы, которые мы используем для различных математических операций, например таких, как сложение или вычитание:

Возвращает значение остатка при делении первого числа на второе. Результат будет иметь тот же знак, что и первое число.

11 % 3 = 2 (поскольку число 3 вмещается три раза, остатком будет число 2)

Примечание: Иногда числа участвующие в математических операциях называют операндами ( operands (en-US) ).

Нам, вероятно, не нужно учить вас базовым математическим операциям, но мы хотели бы проверить ваше понимание синтаксиса. Попробуйте ввести приведённые ниже примеры в свою консоль (developer tools JavaScript console), или используйте встроенную консоль, с которой вы уже знакомы, чтобы ознакомиться с синтаксисом.

    Для начала попробуйте ввести простые примеры, такие как:

Некоторые примеры выше могут дать вам не тот результат, которого вы ожидали; приведённый ниже раздел может дать ответ на вопрос о том, почему.

Приоритет операторов

Давайте взглянем на последний пример сверху. Предположим, что num2 содержит значение 50 и num1 содержит значение 10 (как и было обозначено выше):

Будучи человеком, вы, вероятно, прочитаете это как "50 плюс 10 равно 60", затем "8 плюс 2 равно 10", и, наконец, "60 делить на 10 равно 6".

Но браузер видит это по-другому: "10 делить на 8 равно 1.25", затем "50 плюс 1.25 плюс 2 равно 53.25".

Это происходит из-за приоритета операторов - некоторые операторы будут применены перед другими в процесс вычисления суммы (в программировании её называют выражением). Приоритет операторов в JavaScript ничем не отличается от приоритета арифметических операций, который вы изучали в школе - умножение и деление всегда выполняются первыми, затем сложение и вычитание (сумма всегда вычисляется слева направо).

Если вы хотите переопределить порядок выполнения операторов, вы можете окружить парными скобками часть выражения, которая должна быть выполнена первой. Для получения результата 6 вам следует сделать следующее:

Результат этого выражения равен 6.

Примечание: полный список операторов JavaScript и приоритетов их выполнения можно найти по этой ссылке: Expressions and operators.

Операторы инкремента и декремента

Иногда вам захочется повторно добавить или вычесть единцу к/из значению числовой переменной. Это можно сделать с помощью оператора инкремента ( ++ ) и декремента ( -- ). Мы использовали ++ в нашей игре "Угадай число" в статье первое погружение в JavaScript, где мы добавляли 1 к переменной guessCount , в которой хранилось значение количества попыток пользователя после каждого хода.

Замечание: инкремент и декремент часто используются в циклах, о которых вы узнаете позже. Например, если вы захотите пройтись по списку цен и добавить к каждой налог с продаж, вам придётся в цикле обойти каждую цену и провести необходимые вычисления для учёта налога. Инкремент будет использован для перехода на новую ячейку списка при необходимости. У нас есть несложный пример реализации такого списка - попробуйте и взгляните на код чтобы посмотреть, сможете ли вы найти инкременты! Мы взглянем на циклы поближе позже по ходу курса.

Давайте попробуем сыграть с этим в вашей консоли. Для начала заметим, что вы не можете использовать инкремент/декремент непосредственно к числу, что может показаться странным. Дело в том, что мы присваиваем к переменной новое обновлённое число, а не просто вычисляем значение. Следующий пример приведёт к ошибке:

Таким образом, вы можете применить инкремент только к существующим переменным:

Так, вторая странность! Если вы сделаете это, вы получите значение 4 - браузер возвращает текущее число, после чего применяет к нему оператор инкремента. Вы можете удостовериться в том, что инкремент был применён, узнав значение переменной ещё раз:

То же самое для -- : попробуйте пример ниже

Замечание: вы можете заставить делать это в другом порядке - применить инкремент/декремент и только потом вернуть значение. Для этого необходимо записать оператор слева от переменной, а не справа. Попробуйте пример сверху ещё раз, но в этот раз используйте ++num1 и --num2 .

Операторы присваивания

Операторы присваивания - операторы, которые присваивают значение переменным. Мы уже много раз использовали самый простой из них, = , он просто приравнивает значение переменной слева к значению справа:

Однако есть ещё несколько сложных конструкций, которые позволяют делать ваш код более простым и аккуратным. Наиболее часто используемые перечислены ниже:

Попробуйте использовать такие конструкции, что понять, как они работают. Сможете ли вы определить значение до того, как напишите вторую строку?

Заметьте, что значение справа может быть как числом (константой), так и переменной, например:

Примечание: есть ещё другие операторы присваивания, в этой статье перечислены только самые базовые.

Активное обучение: меняем размеры коробки

В этом упражнении вы будете пользоваться числами и операторами для работы с размерами коробки. Коробка рисуется с помощью API браузера, которое называется Canvas API. Вам не следует беспокоиться о том, как это работает - просто сосредоточьтесь на математике. Ширина и высота коробки (в пикселях) определяются переменными x и y , которые изначально равны 50.

В коде сверху, который вы можете изменять, под комментарием есть две строчки, с помощью которых вы можете увеличивать/уменьшать размеры коробки. Мы хотим, чтобы вы выполнили несколько заданий:

  • Поменяйте строчку с размером x так, чтобы коробка была шириной 50px, причём 50 должно быть вычислено с помощью чисел 43 и 7 и арифметического оператора.
  • Поменяйте строчку с размером y так, чтобы коробка была высотой 75px, причём 75 должно быть вычислено с помощью чисел 25 и 3 и арифметического оператора.
  • Поменяйте строчку с размером y так, чтобы коробка была высотой 250, при этом 250 вычислено с помощью двух чисел и оператором взятия остатка (модуль).
  • Поменяйте строчку с размером y так, чтобы коробка была высотой 150px, причём 150 вычислено с помощью трёх чисел и операторов вычитания и деления.
  • Поменяйте строчку с размером x так, чтобы коробка была шириной 200px, при этом 200 вычислено с помощью числа 4 и оператора присваивания.
  • Поменяйте строчку с размером y так, чтобы коробка была высотой 200px, причём 200 вычислено с помощью чисел 50 и 3 и операторов умножения и присваивания сложения.

Операторы сравнения

Иногда нам может понадобиться проверить какое-либо условие, а затем поступить в зависимости от результата - для этого мы используем операторы сравнения.

Оператор Имя Назначение Пример
=== Строгое равенство Проверяет левое и правое значения на идентичность 5 === 2 + 4
!== Строгое неравенство Проверяет левое и правое значения на неидентичность 5 !== 2 + 3
Меньше Проверяет, меньше ли левое значение правого 10
> Больше Проверяет, больше ли левое значение правого 10 > 20
3
>= Больше или равно Проверят, больше ли левое значение левого (или равно ему) 5 >= 4

Примечание: вы можете заметить, что некоторые люди используют == и != в их программах для сравнения на равенство и неравенство — это валидные JavaScript-операторы, но они отличаются от === / !== — первая пара проверяет на равенство/неравенство значений, не рассматривая их типы. Вторая пара - строгая версия первой, которая проверяет типы операндов. При использовании строгой версии выявляется больше ошибок, поэтому мы рекомендуем использовать именно её.

Если вы попробуете использовать эти операторы в консоли, вы увидите, что все они возвращают значения true / false — о типе данных boolean мы писали в прошлой статье. С их помощью мы можем принимать решения в нашей программе, например:

Мы взглянем на то, как реализовать такую логику после знакомства с условными выражениями в следующей статье. Сейчас мы рассмотрим небольшой пример:

Мы использовали оператор равенства внутри функции updateBtn() . В этом случае мы не проверяем пару математических выражений на равенство значений — мы просто смотрим, является ли текст на кнопке определённой строкой — что по сути является тем же самым. Если кнопка при нажатии содержит "Start machine", мы меняем содержимое метки на "Stop machine" и обновляем метку. Если же текст кнопки — "Stop machine", при нажатии мы возвращаем все обратно.

Примечание: Такой элемент управления, который переключается между двумя состояниями, обычно называется тумблером. Он переключается между одним состоянием и другим: свет включён, свет выключен и т. д.

Итого

В этой статье мы привели основную информацию, необходимую для работы с числами в JavaScript. Вы постоянно будете использовать числа в процессе обучения языку, поэтому желательно разобраться в этом сейчас. Если вам действительно не нравится математика, пусть вас утешит, что эта статья была сравнительно короткой.

В следующей статье мы изучим текст и то, как мы работаем с ним в JavaScript.

Примечание: если вам хочется узнать подробнее о том, как математика реализуется в JavaScript, вы можете посмотреть главный раздел JavaScript MDN. Статьи Числа и даты и Выражения и операторы - хороший вариант для начала.

Читайте также: