Читайте также:
|
|
В 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание программы. | | | Основные свойства объектно-ориентированного подхода |