Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Рассмотрим пример.
package by.bsac.practical4.run; /* * Строка — объект, чтопредставляетпоследовательностьсимволов. * Длясоздания и манипулированиястроками Java платформапредоставляетобщедоступныйфинальный (неможетиметьподклассов) класс java.lang.String. * Данныйклассявляетсянеизменяемым (immutable) — созданныйобъекткласса String неможетбытьизменен. */
public class Practical4Test { public static void main(String[] args) { /* * Созданиеобъектакласса String */
/* * Cпособ 1: Используястроковыелитералы - последовательностьсимволов * заключенных в двойныекавычки. Важнопонимать, чтовсегдакогдавы * используетестроковойлитералкомпиляторсоздаетобъектсозначением * этоголитерала */ String stringExample = " string literal"; System. out. println(" string literal"); // создалиобъект и вывелиего // значение
/* * 2. С помощьюконструкторов: */ String stringForTest = " test string"; char [] testStringAsArrayOfChars = { 't', 'e', 's', 't', ' ', 's', 't', 'r', 'i', 'n', 'g' }; byte [] testStringAsArrayOfBytes = new byte [stringForTest.length()]; for (int i = 0; i < stringForTest.length(); i++) { char character = stringForTest.charAt(i); testStringAsArrayOfBytes[i] = (byte) character; }
String first = new String(" test string"); String second = new String(stringForTest); String third = new String(testStringAsArrayOfChars); String fourth = new String(testStringAsArrayOfBytes, 0, 4);
System. out. println(first); System. out. println(second); System. out. println(third); System. out. println(fourth); /* * Сравнениепроизводительностиприсозданиистрокпервым и вторым * способами */ long startTime = System. currentTimeMillis (); for (int i = 0; i < 50000; i++) { String s1 = " hello"; String s2 = " hello"; } long endTime = System. currentTimeMillis (); System. out. println( " Время, потраченное на создание" + " строковых литералов: " + (endTime - startTime) + " миллисекунд"); long startTime1 = System. currentTimeMillis (); for (int i = 0; i < 50000; i++) { String s3 = new String(" hello"); String s4 = new String(" hello"); } long endTime1 = System. currentTimeMillis (); System. out. println(" Время, потраченное на создание" + " объектов класса String: " + (endTime1 - startTime1) + " миллисекунд");
/* * Длинастроки */ String testLength = " String"; // получитьдлинустроки int length = testLength.length(); // теперьможноузнатьестьлисимволсимвол 't' в " String" char searchChar = 't'; boolean isFound = false; for (int i = 0; i < length; ++i) { if (testLength.charAt(i) == searchChar) { isFound = true; break; // первоевхождение } } System. out. println(isFound); // true /* * String.indexOf - Возвращаетиндекспервого (последнего) вхождения * символа в строке. */ boolean isFoundCharAt = testLength.indexOf(searchChar)! = -1; System. out. println(isFoundCharAt); // true
/* * Конкатенация */ // 1. Методconcat String concatString = " ADP".concat(" -java").concat(" -practical").concat(" 4"); System. out. println(concatString); // получим ADP-java-practical4 // 2. Операторы " +" и " +=" String plusString = " java" + " -string"; plusString += " -example"; System. out. println(plusString); // java-string-example
String str1 = " test"; String str2 = " string"; String resultString = str1 + str2; // насамомделе String resultString2 = new StringBuilder().append(str1).append(str2).toString();
/* * Сравнениестрок */ String compareStr1 = new String(" test"); String compareStr2 = " test"; System. out. println(" equals() - строки имеют одинаковое значение: " + compareStr1.equals(compareStr2)); // true
System. out. println(" == проверка, одинаковые ли объекты: " + (compareStr1 == compareStr2)); // false
String compareStr3 = new String(" test"); System. out. println(" == проверка, одинаковые ли объекты: " + (compareStr1 == compareStr3)); // false
String compareStr4 = " test"; System. out. println(" == проверка, одинаковые ли объекты: " + (compareStr2 == compareStr4)); // true /* * Преобразование */ // 1. Число в строку
int integerVariable = 10; String firstInt = integerVariable + " "; // конкатенация с пустойстрокой String secondInt = String. valueOf (integerVariable); // вызов // статического // метода valueOf // класса String String thirdInt = Integer. toString (integerVariable); // вызовметода // toString // класса - обертки
// 2. Строку в число
String stringInt = " 15"; int int1 = Integer. parseInt (stringInt); /* * получаемпримитивныйтип (primitive type) используяметод * parseXхх * нужногокласса - обертки, гдеXxx - имяпримитива с заглавнойбуквы * (например parseInt) */ int int2 = Integer. valueOf (stringInt); // получаемобъект wrapper // класса и автоматическираспаковываем
/* Примеры, демострирующиенеизменяемостьстрок (immutable) */ String immutableStr1 = " Hello"; String immutableStr2 = immutableStr1; // s1 и s2 now указываютнаодин и тот жеобъекткласса String " Hello" /* * Теперьнетничеготакого, чтобымымоглисделать с объектом * immutableStr1 и неповляитьнаобъект immutableStr2. Ониссылаютсяна * один и тотжеобъект - строка " Hello" - ноэтотобъектявляется * неизменяемым (immutable) и такимобразомнеможетбытьизменен. * * Еслимывыполнимследующее: */ immutableStr1 = " Help! "; // создаетсяновыйобъект в пулестрок (таккакстрокиявляются // неизменяемыми (immutable) System. out. println(immutableStr2); // " Hello" - // *immutableStr2 продолжаетссылатьсянастроку Hello, таккакданныйобъектнеизменился, а для immutableStr1 былсозданновыйобъект */
String string1 = " String"; String string2 = string1; string1 = string1.replace('i', 'o'); System. out. println(string1); // " Strong" System. out. println(string2); // " String" System. out. println(string1 == string2); // " false" /* таккак s1 и s2 являются 2мя разнымиобъектами */
/* * Форматирование * * Класс String предоставляетвозможностьсозданияформатированных * строк. Заэтоотвечаетстатическийметод format, например: */ String formatString = " Printing double variable (%f), string ('%s') and integer variable (%d)."; System. out. println(String. format (formatString, 9.31, " example", 17)); // Printing double variable (9, 310000), string ('example') and integer // variable (17). }
}
Результат: string literal test string test string test string test Время, потраченное на создание строковых литералов: 1 миллисекунд Время, потраченное на создание объектов класса String: 9 миллисекунд true true ADP-java-practical4 java-string-example equals() - строки имеют одинаковое значение: true == проверка, одинаковые ли объекты: false == проверка, одинаковые ли объекты: false == проверка, одинаковые ли объекты: true Hello Strong String false Printing double variable (9, 310000), string ('example') and integer variable (17).
|