Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    Как сравнить строки

    Операция сравнения == сопоставляет только ссылки на строки. Она выясняет, указывают ли ссылки на одну и ту же строку. Например, для строк

    String s1 = "Какая-то строка"; 

    String s2 = "Другая-строка";

    сравнение s1 == s2 дает в результате false .

    Значение true получится, только если обе ссылки указывают на одну и ту же строку, например, после присваивания si = s2 .

    Интересно, что если мы определим s2 так:

    String s2 == "Какая-то строка";

    то сравнение s1 == s2 даст в результате true , потому что компилятор создаст только один экземпляр константы "Какая-то строка" и направит на него все ссылки.

    Вы, разумеется, хотите сравнивать не ссылки, а содержимое строк. Для этого есть несколько методов.

    Логический метод equals (object obj) , переопределенный из класса object , возвращает true , если аргумент obj не равен null , является объектом класса string , и строка, содержащаяся в нем, полностью идентична данной строке вплоть до совпадения регистра букв. В остальных случаях возвращается значение false .

    Логический метод equalsIgnoreCase(object obj) работает так же, но одинаковые буквы, записанные в разных регистрах, считаются совпадающими.

    Например, s2.equals("другая строка") даст в результате false , а s2.equalsIgnoreCase("другая строка") возвратит true .

    Метод compareTo(string str) возвращает целое число типа int , вычисленное по следующим правилам:

    1. Сравниваются символы данной строки this и строки str с одинаковым индексом, пока не встретятся различные символы с индексом, допустим k , или пока одна из строк не закончится.
    2. В первом случае возвращается значение this.charAt(k) - str.charAt(k), т. е. разность кодировок Unicode первйх несовпадающих символов.
    3. Во втором случае возвращается значение this.length() - str.length() , т. е. разность длин строк.
    4. Если строки совпадают, возвращается 0.

    Если значение str равно null , возникает исключительная ситуация.

    Нуль возвращается в той же ситуации, в которой метод equals() возвращает true .

    Метод compareToignoreCase(string str) производит сравнение без учета регистра букв, точнее говоря, выполняется метод

    this.toUpperCase().toLowerCase().compareTo( 

    str.toUpperCase().toLowerCase());

    Еще один метод— compareTo (Object obj) создает исключительную ситуацию, если obj не является строкой. В остальном он работает как метод compareTo(String str).

    Эти методы не учитывают алфавитное расположение символов в локальной кодировке.

    Русские буквы расположены в Unicode по алфавиту, за исключением одной буквы. Заглавная буква Ё расположена перед всеми кириллическими буквами, ее код '\ u040l ', а строчная буква е — после всех русских букв, ее код '\ u0451 '.

    Если вас такое расположение не устраивает, задайте свое размещение букв с помощью класса  RuleBasedCollator из пакета java.text .

    Сравнить подстроку данной строки this с подстрокой той же длины len другой строки str можно логическим методом

    regionMatches(int indl, String str, int ind2, int len)

    Здесь ind1 — индекс начала подстроки данной строки this, ind2 — индекс начала подстроки другой строки str . Результат false получается в следующих случаях:

    • хотя бы один из индексов ind1 или ind2 отрицателен;
    • хотя бы одно из ind1 + len или ind2 + len больше длины соответствующей строки;
    • хотя бы одна пара символов не совпадает.

    Этот метод различает символы, записанные в разных регистрах. Если надо сравнивать подстроки без учета регистров букв, то используйте логический метод:

    regionMatches(boolean flag, int indl, String str, int ind2, int len)

    Если первый параметр flag равен true , то регистр букв при сравнении подстрок не учитывается, если false — учитывается.

     

    -
    



    Copyright © vzlom-1.ru 2020-2021