// У строк свой формат объявления объектов:
String name = "Ivan"; // создать Строку name, равную "Ivan"
System.out.println ("Меня зовут ");
System.out.println (name); // распечатать строку name
String first_name = "Ivan";
String second_name = "Kuznetzov";
// С помощью оператора + можно склеивать строки - получится снова строка.
// Эту строку можно сохранить в переменной, например, так:
String full_name = first_name + " " + second_name;
// Можно делать склейку прямо при распечатке
System.out.println (first_name + " " + second_name);
// Если написать строка плюс число, то число тоже приклеится к строке:
int house_number = 204;
String address = "Mayakovskaya street, " + house_number;
System.out.println (address); // Распечатается: Mayakovskaya street, 204
// Можно использовать + и непосредственно при распечатке:
double pi = 3.1415;
System.out.println ("Число Пи примерно равно " + pi);
// Также + хорош для перевода числа в строку:
int number = 10;
String str = number + ""; // приклеим 10 к пустой строке, получим строку '1', '0'
String name = "Ivan";
// charAt возвращает код символа под заданным номером.
// Это именно код, поэтому charAt возвращает int, но его можно явно привести к char,
// чтобы пользоваться уже как символом, в том числе распечатывать
char c0 = (char) name.charAt (0); // с0 теперь равно 'I' - нулевой символ строки Ivan
char c1 = (char) name.charAt (1); // с1 будет равно 'v'
char c2 = (char) name.charAt (2); // с2 будет равно 'a'
char c3 = (char) name.charAt (3); // с3 будет равно 'n'
// в строке Ivan всего 4 символа, от нулевого до третьего,
// поэтому обращение к четвертому повлечет ошибку:
char c4 = (char) name.charAt (4); // исключение out of bounds,
// то есть символ с индексом 4 вне границ строки.
// На экране вы увидите красную надпись:
"java.lang.StringIndexOutOfBoundsException: String index out of range: 4"
// Не пугайтесь экрана с кучей непонятного текста - ищите ключевые знакомые куски
// Например, IndexOutOfBounds точно означает выход за границу, а остальное уже детали
Scanner myscan = new Scanner (System.in);
// функция сканера next() возвращает очередное слово,
// которое пользователь вводит с клавиатуры:
String word = myscan.next (); // считать строчку до ближайшего пробела или enter
// функция сканера next() считает целую строку до ближайшего enter:
String line = myscan.nextLine ();
Scanner myscan = new Scanner (System.in);
String line1 = myscan.nextLine (); // считать первую строчку с клавиатуры
String line2 = myscan.nextLine (); // считать вторую строчку с клавиатуры
if (line1.equals (line2) == true)
System.out.println ("Были введены одинаковые строчки");
else
System.out.println ("Были введены разные строчки");
// если в операторе if не указывать никакое сравнение, то
// автоматически будет подразумеваться проверка выражения на истинность,
// то есть == true допишется по умолчанию, даже если его не писать.
// Так что следующие строчки делают то же самое, но запись чуть-чуть короче:
if (line1.equals (line2)) // "если line1 равна line2, то" - код читается легче
System.out.println ("Были введены одинаковые строчки");
else
System.out.println ("Были введены разные строчки");
// Функция equals вызывается для какой-то заданной строчки: line1.equals () ,
// То есть вызов можно прочесть как "равна ли строка line 1?"
// Сразу напрашивается - равна ли, а чему именно? Конечно другой строчке -
// она указывается параметром функции equals.
// Мы могли бы считать строки с клавиатуры
// Scanner myscan = new Scanner (System.in);
// String line1 = myscan.nextLine ();
// String line2 = myscan.nextLine ();
System.out.println ("Введите адрес");
// Но сейчас для наглядности зададим конкретные значения:
String address = "город Москва, улица Маяковская, дом 10";
// если в адресе есть слово "Москва", то ...
if ( address.contains ("Москва"))
System.out.println ( "Совершите покупку всего за 100$" );
else
System.out.println ( "Совершите покупку всего за 10$ " ); // шутка конечно :)
// вычислим длину строки:
int len = address.length ();
System.out.println ("Вы ввели следующее количество символов: " + len);
int begin = address.indexOf(","); // найдём первую запятую - с неё начинается улица в адресе
System.out.println ("Первая запятая в тексте встречается на позиции " + begin);
int end = address.indexOf(",", begin + 1); // искать вторую запятую после первой запятой
String street = address.substring (begin+1, end); // выделим часть строчки с описанием улицы
System.out.println ("Введенная улица: " + street); // распечатает "улица Маяковская"
String number_str = String.valueOf (4.5);
// было число double 4.5, а стала строка String number_str из трёх символов '4', '.', '5'
// Java допускает и вызов через конкретный объект, как мы делали раньше:
String line1 = "something";
String number_str2 = line1.valueOf (4.5); // так можно, но не обязательно
// можно вызвать valueOf и для исходной строки line1, но смысла в этом мало -
// всё равно line1 никак не используется.
// Для таких функций можно просто указывать имя класса, в данном случае String
//Можно вызывать valueIOf и для целых чисел и для других типов:
String integer_str = String.valueOf (10); // вызывали прямо по имени класса String.valueOf
// Функции, которые можно вызывать по имени класса называются статическими - static.
package javaapplication5;
import java.util.Scanner;
public class JavaApplication5 {
public static void main(String[] args) {
Scanner myscan = new Scanner (System.in);
String answer = myscan.nextLine ();
if (answer.contains ("yes") )
System.out.println ("Вы сказали да");
if (answer.contains ("no") )
System.out.println ("Вы сказали нет");
if (answer.contains ("yes") && answer.contains ("no") )
System.out.println ("Сам хоть понял, что сказал?"); // программисткий юмор :)
}
}