Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Рассмотрим пример.






    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).

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.