JavaRush /Java блог /Random UA /10 найпопулярніших питань про рядки в Java
ext4
20 рівень

10 найпопулярніших питань про рядки в Java

Стаття з групи Random UA

Тут згадані 10 найбільш популярних питань про рядки в Java

[Переклад] 10 найпопулярніших питань про рядки в Java - 1
  1. Як порівнювати рядки? Що використовувати: " ==" або equals()?

    Коротко, " ==" порівнює посилання на рядки, а equals()порівнює значення, що містяться у цих рядках. Якщо ви не хочете перевірити, що два рядки є одним і тим же об'єктом, вам слід використовувати equals().

    Також було б непогано знати концепцію пула рядків .

  2. Чому char[]краще за рядки ( String) для захисту конфіденційної інформації?

    Рядки незмінні . Це означає, що одного разу створений рядок не змінюватиметься до безпосереднього запуску механізму збирача сміття. Що стосується масивом цілком очевидно, що ми можемо змінювати його елементи. Таким чином, конфіденційна інформація (наприклад, пароль) не зберігатиметься у відкритому вигляді в будь-якому місці програми.

  3. Чи можемо ми передавати рядки як параметр під час використання оператора switch ?

    Так, починаючи з 7-ої версії JDK. Раніше в 6-ій версії такої можливості не було.

    // java 7 only!
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
  4. Як конвертувати рядок на ціле значення?

    int n = Integer.parseInt("10");

    Аналогічно й інших примітивних типів Java.

  5. Як поділити рядок на рядки з роздільником-пробілом?

    Найпростіше використовувати регулярні вирази. " \s" Виступає як замінник символів пробілів, таких як " ", " \t", " \r" , " \n" .

    String[] strArray = aString.split("\\s+");
  6. < Що насправді робить метод substring()?

    У JDK 6 метод substring()показував частину символів з існуючого рядка, але не створював окремого екземпляра рядка. Щоб створити новий рядок, представлений у вигляді масиву символів можна додати якийсь порожній рядок, наприклад, так:

    str.substring(m, n) + ""

    В результаті ми отримуємо масив символів, який є нашим новим рядком. Такий підхід іноді може скоротити час виконання коду, тому що збирач сміття може знищити великі рядки, що не використовуються, і зберігати тільки підрядки.

    У Oracle JDK 7 метод substring()створює новий масив символів, не використовуючи вже існуючий. Ви також можете подивитися на діаграму, що представляє різницю методів substring() у JDK 6 та JDK 7 .

  7. String проти StringBuilder проти StringBuffer

    Stringпроти StringBuilder: StringBuilderзмінюємо, це означає, що ми можемо змінити його зміст після створення об'єкта.

    StringBuilderпроти StringBuffer: StringBufferсинхронізований, це означає, що він функціонує коректно при використанні з кількох потоків одночасно, але повільніше, ніж StringBuilder.

  8. Як повторити рядок кілька разів?

    У Python, ми можемо просто помножити рядок на число nі тоді він буде повторюватися n разів. У Java, ми можемо використовувати метод repeat()класу StringUtilsбібліотеки Apache Commons Lang.

    String str = "abcd";
    String repeated = StringUtils.repeat(str,3);
    //abcdabcdabcd
  9. Як конвертувати рядок у дату?

    String str = "Sep 17, 2013";
    Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
    System.out.println(date);
    //Tue Sep 17 00:00:00 EDT 2013
  10. Як порахувати кількість входжень певного символу у рядку?

    Використовуйте клас StringUtilsіз бібліотеки Apache Commons Lang.

    int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n);
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ