51. Арифметика
Теория
Для создания переменной строки необходимо использовать кострукцию вида:
String название_переменной;
Пока мы не зададим начальное значение строковой переменной s
idea будет
выдавать ошибку:
Напишем простейшую программу
public class Main {
public static void main(String[] args) {
String s = "Привет, мир!";
System.out.println(s);
}
}
Она создаёт переменную строки, помещает в неё строку Привет, мир!
, после чего выводит
на экран значение используемой переменной:
Чтение с консоли
Чтобы считать с клавиатуры строку, необходимо использовать команду sc.nextLine()
:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// создаём сканер
Scanner sc = new Scanner(System.in);
// читаем строку с клавиатуры
String s = sc.nextLine();
// выводим её на экран
System.out.println(s);
}
}
Если нам нужно прочитать строку только до первого пробела, тогда необходимо
использовать команду next()
:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// создаём сканер
Scanner sc = new Scanner(System.in);
// читаем первое слово с клавиатуры
String s = sc.next();
// выводим его на экран
System.out.println(s);
// читаем второе слово с клавиатуры
s = sc.next();
// выводим его на экран
System.out.println(s);
}
}
Получим:
Сложение строк
Чтобы сложить две строки, необходимо просто прибавить одну к другой:
public class Main {
public static void main(String[] args) {
String s = "Привет,";
String s2 = "Мир";
String res = s + " " + s2;
System.out.println(res);
}
}
Получим:
Привет, мир!
Массив символов
Строку можно рассматривать как массив типа char
. Правда, при этом строки нельзя изменять.
Поэтому чтобы заменить третий символ в строке, нужно использовать метод .substring(int a, int b)
.
Он возвращает подстроку, состоящую из символов от a
включительно до b
исключительно
public class Main {
public static void main(String[] args) {
String s = "Привет, Мир";
String res = s.substring(0, 4);
System.out.println(res);
res = s.substring(2, 5);
System.out.println(res);
}
}
Получим:
Прив
иве
Чтобы заменить, например, третий символ в строке, необходимо использовать такую конструкцию:
public class Main {
public static void main(String[] args) {
String s = "Привет, Мир";
String res = s.substring(0, 3) + "!" + s.substring(4, s.length());
System.out.println(res);
}
}
Получим:
При!ет, Мир
Команда s.length()
возвращает длину строки
Получить символ гораздо проще. Для этого используется команда .charAt()
:
public class Main {
public static void main(String[] args) {
String s = "Привет, Мир";
char c = s.charAt(3);
System.out.println(c);
}
}
Получим:
в
Символы
Все символы хранятся в переменных типа char
. Чтобы задать переменной значение,
необходимо использовать одинарные кавычки, а чтобы строку - двойные.
String s = "Привет, Мир";
char c = '!';
Символьный тип данных - это надстройка над целым типом данных, поэтому с ним можно выполнять все те же операции, что и с целыми числами.
С клавиатуры вводится символ, необходимо узнать, является ли он заглавной буквой
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// читаем строку
String s = sc.nextLine();
// получаем из неё символ с индексом 0 (первый)
char c = s.charAt(0);
// если c - заглавная буква
if ('A' <= c && c <= 'Z')
System.out.println("ДА");
else
System.out.println("НЕТ");
}
}
Если необходимо выполнить арифметические операции над переменными типа char
, то
после их выполнения необходимо явно привести результат выражения к типу char
.
По умолчанию все участники арифметических выражений преобразуются в int
.
С клавиатуры вводится строчная буква латинского алфавита, необходимо вывести её заглавный вариант.
Каждый символ имеет свой код. Именно с ним работает java
. Сами символы в человеконятном
виде выводятся только для удобства разработки.
Коды всех символов представлены в таблице ascii
Можно заметить, что и большие, и маленькие буквы идут подряд,
поэтому мы можем из кода текущего символа вычесть код строчной буквы a
.
Тогда мы получим, на сколько код прочитанного символа больше кода буквы a
.
Если теперь мы эту разницу прибавим к коду заглавной буквы A
, то мы получим ту же
букву, что была прочитана с клавиатуры, но уже заглавную.
Если не использовать явное преобразование, то среда разработки выдаст ошибку:
Добавим явное преобразование и выведем ответ на экран:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// читаем строку
String s = sc.nextLine();
// получаем из неё символ с индексом 0 (первый)
char c = s.charAt(0);
char cb = (char)(c - 'a' + 'A');
System.out.println(cb);
}
}
Получим:
Задание
Классом Integer пользоваться нельзя.
- Введите с клавиатуры цифру, знак
+
и еще одну цифру. Выведите на экран результат введенной операции. - Введите с клавиатуры цифру, знак
-
и еще одну цифру. Выведите на экран результат введенной операции. - Введите с клавиатуры три символа. Выведите на экран, верно ли, что эти три символа составляют верное
равенство цифр (
YES
/NO
). - Ввести с клавиатуры четыре символа: две цифры, знак плюс, цифра. Известно, что первая цифра не . Вывести на экран результат сложения.
- Введите с клавиатуры целое двузначное число (от до ), знак
/
и еще одну цифру (не ноль) без пробелов. Выведите на экран результат введенной операции с точностью 3 цифры после десятичной точки. - Ввести с клавиатуры шесть символов: три цифры, знак минус, две цифры. При этом первая цифра - не ноль. Вывести на экран результат вычитания.
- Дана строка, изображающая арифметическое выражение вида ,
где на месте знака операции находится символ
+
или–
(например, ). Вывести значение данного выражения (целое число).