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

Классы String и String Buffer

Читайте также:
  1. A STRING QUARTET
  2. Aplicarea masurilor de constringere cu caracter educativ
  3. Aplicarea masurilor de constringere cu caracter medical
  4. HLA - система; классы антигенов, биологические функции, практическое значение HLA-типирования.
  5. Introduction to Strings
  6. MyString классын жазыныз. 3
  7. PART ONE The Strings 1 страница

 

В Java строки представляются двумя классами:

· String – предпочтителен для строковых констант, т.е. после создания строки не меняются.

· StringBuffer – используется для строк, изменяющихся в программировании.

В Java класс String представляет строковые константы. Можно рассматривать

строку, как массив символов, при этом индекс начинается с нуля.

Работая с объектом String можно осуществлять поиск, сравнивать и т.д., но нельзя изменять строку. Объекты String могут создаваться явно или неявно, для неявного – достаточно поместить строку в программу, например,

 

g.drawString(“Hello”, 50, 50);

 

здесь Java неявно создаёт объект String для строки “Hello”.

Другой способ – использование конструктора

 

String str = new String(“Hello”);

или

String str;

str = “Hello”;

или

String str = “Hello”;

 

Класс String имеет ещё семь конструкторов для инициализации объектов класса String.

Рассмотрим работу конструкторов на примере:

 

// StringConstructors.java

 

1 import javax.swing.*;

2 public class StringConstructors {

3 public static void main (String args[]) {

4 StringBuffer buffer;

5 String s, s1, s2,s3, s4, s5, s6, s7, output;

6 s=new String ("Привет!");

7 buffer = new StringBuffer ("J");

8 char charArray [] = { 'J','a','v','a'};

9 byte byteArray[]={(byte)'n',(byte)'e',(byte)'w',

(byte)' ',(byte)'y',(byte)'e',(byte)'a'};

10 s1=new String(); // пустая строка

11 s2= new String(s);

12 s3= new String(charArray);

13 s4= new String(charArray,1,3);// 1-смещение, с которого

// начинается копирование,

//3-колличество элементов

14 s5= new String(byteArray, 3, 3);

15 s6= new String(byteArray);

16 s7= new String(buffer);

17 output="S1="+s1+"\n S2="+s2+"\n S3="+s3+

"\n S4="+s4+"\nS5="+s5+"\n S6="+s6+"\n S7="+s7;

18 JOptionPane. showMessageDialog (null, output,

"Демонстрация конструкции String",

JOptionPane.INFORMATION_MESSAGE);

19 System.exit (0);

20 }

21 }

 

 

Рис 10.1 диалоговое окно метода showMessageDialog ()

 

Как только создан объект String, можно вызывать методы класса String.

Рассмотрим некоторые из них.

Для определения длины строки, вызывается метод length ():

 

String str = “строка”;

int len = str.length ();

 

Для определения начала строки с некоторых символов:

 

String str = “строка”;

boolean result = str.startsWith (“стр”);

 

аналогичный метод endsWith().

Сравнение строк:

метод equals()- equals возвращает true, если строки идентичны с учетом регистра, false – иначе.

метод equalsIgnoreCase()- equalsIgnoreCase возвращает true, если строки равны без учёта регистра.

метод compareTo()-compareTo возвращает 0, если строки равны (с учетом регистра), -1, если в S2. compareTo(S1) S2 меньше S1, 1 - если S2 больше S1.

 

Объекты StringBuffer позволяют создавать строки, которые можно изменять. Каждый объект StringBuffer может сохранять то число символов, которое указано в его размере. Если вместимость объекта StringBuffer превышена, то размер объекта может автоматически увеличиваться, чтобы предоставить место для дополнительных символов.

Класс StringBuffer имеет три конструктора.

 

Рассмотрим пример:

 

// StringBufferConstructors.java

 

1 import javax.swing.*;

2 public class StringBufferConstructors {

3 public static void main (String args[]) {

4 StringBuffer buf1, buf2, buf3;

5 buf1=new StringBuffer(); // пустой,размер в 16 символов

6 buf2=new StringBuffer(10);//размерность-10 символов,

// пустой

7 buf3=new StringBuffer("привет"); //число символов

//в объекте 7+16.

8 String output="buf1="+buf1.toString()+

"\nbuf2="+buf2.toString()+

"\nbuf3="+buf3.toString();

9 JOptionPane.showMessageDialog (null, output);

10 System.exit(0);

11 }

12 }

 

В данном примере создается три различных объекта класса StringBuffer: buf1 - по умолчанию, размерностью в 16 символов, пустой; buf2 – с заданным размером, пустой; buf3 – содержащий объект класса String +16 символов. Формируется строка output из содержимого каждого объекта класса StringBuffer, которая затем выводится в диалоговое окно.

 

Пример использования методов класса String Buffer:

 

// StringBuffMethods.java

 

1 import javax.swing.*;

2 public class StringBuffMethods {

3 public static void main (String args []) {

4 StringBuffer buffer=new StringBuffer("Привет,

как дела?");

5 String output= ""+ buffer.toString() +

"\n длина="+buffer.length() + "\n ёмкость="+

buffer.capacity();

6 buffer.ensureCapacity(75);

7 output += "\n Новая ёмкость=" + buffer.capacity();

8 buffer.setLength(10);

9 output += "\n Новая длина=" + buffer.length()+

"\n буфер=" +buffer.toString();

10 JOptionPane.showMessageDialog(null, output);

11 System.exit(0);

12 }

13 }

 

 

Рис 10.2 диалоговое окно метода showMessageDialog ()

 

Как видно из примера, понятия длина и емкость имеют разные значения для объекта класса StringBuffer. Длина – это количество символов в строке объекта StringBuffer, а емкость – количество символов, которое может быть сохранено в объекте класса StringBuffer. Изначально объект имеет емкость равную 33 символа, затем его емкость изменяется при помощи метода ensureCapacity().

Методы класса StringBuffer:

length() – количество символов в объекте;

capacity() – количество символов, которое может быть сохранено в объекте;

ensureCapacity() – задать размер буфера объекта StringBuffer;

setLength() – увеличение или уменьшение длины объекта.

 

Более подробную информацию о методах классов String и StringBuffer можно получить в документации по Java.

Клас Math.

Среди других встроенных классов отметим класс Math.

Методи класу Math дозволяють виконувати типові математичні обчислення. Метод викликається шляхом запису імені класу, імені методу і аргументу. Наприклад,

Math.sqrt(х)

в даному випадку викликається статичний метод sqrt класу Math, який обчислює .

 

Приведемо деякі методи класу Math:

abs(х) – абсолютне значення х;

cos(х) – тригонометричний косинус х

sin(х) – тригонометричний синус х

tan(х) – тригонометричний тангенс х

exp(х) – експоненціальний метод ех

floor(х) – округлення х до найбільшого цілого, але не більшого, ніж х

log(х) – натуральний логарифм х

pow(х,у) – х в степені у ху

sqrt(х) – корінь квадратний з х

min(х,у) – менше з двох чисел х і у

max(х,у) – більше з двох чисел х і у

ceil(х) – округлення х до якнайменшого цілого числа, але не меншого, ніж х

random () – генерація випадкових чисел в діапазоні від [0.0, 1.0)

toRadians() - перетворення градусного аргументу в радіани

toDegrees() - перетворення радіанного аргументу в градуси

 

Розглянемо приклади, які наочно демонструють структуру простого додатку Java, використовування методів класу Math, а також введення початкових даних з командного рядка.

Перша програма виконує обчислення значення функції

при х=3.25

 

// Func.java

 

1 public class Func {

2 public static void main(String args[]) {

3 double x;

4 double z;

 

5 x=Double.parseDouble(args[0]);

6 z=(Math.pow(x,2)+Math.cos(x))/(x+2);

 

7 System.out.print("Rezult Z= " + z);

8 }

9 }

 

Все перечисленные выше встроенные классы находятся в пакете java.lang и не требуют использования оператора import.


Дата добавления: 2015-10-29; просмотров: 120 | Нарушение авторских прав


Читайте в этой же книге: Жизненный цикл программы на Java | Управляющие структуры и операции в Java | Создание собственных пакетов. | Класс Graphics | Интерфейс Java2D | Графический интерфейс пользователя. | Менеджеры компоновки | Слушатели (listeners) полей и кнопок. | Обработка событий мыши | Классы адаптеры |
<== предыдущая страница | следующая страница ==>
Создание программы.| Основные свойства объектно-ориентированного подхода

mybiblioteka.su - 2015-2024 год. (0.014 сек.)