118.52K
Категория: ПрограммированиеПрограммирование

Строки. Лекция №3

1.

Строки

2.

Класс String
Используется другими стандартными
классами Java
Экземпляр класса не может быть
изменен
Все строки кодируются в Unicode

3.

Создание экземпляра класса
String word;
word = new String();
String man = new String(“Иванов”);
String java = new String(
new char[] {‘J’, ‘a’, ‘v’, ‘a’}
);

4.

Литералы
String a = new String(“test”);
String b = “test”;
String c = “test”;
String d = b + “test”;
a
b
c
d
“test”
“test”
“testtest”

5.

Конкатенация строк
String a = “·test·”;
int b = 45;
a = b + a; // a = “45·test·”
boolean c = true;
a += c; // a = “45·test·true”
char d = ‘$’;
a += “-” + d;
// a = “45·test·true-$”

6.

Конкатенация строк
String a;
int b = 45;
int c = 67;
a = b + “·” + c; // a = “45·67”
a = b + c + “·”; // a = “112·”
a = b + c; // ERROR

7.

Методы класса String
String word = “аттестат”;
int n = word.length(); // n = 8
char symbol = word.charAt(3);
// symbol = ‘е’
char symbol = word[3];

8.

Пример посимвольной обработки
строки
String word = “аттестат”;
int count = 0;
for(int i = 0, n = word.length();
i < n; i++) {
if(word.charAt(i) == ‘т’) {
count++;
}
}
// count = 4

9.

Сравнение строк
String a = “test”;
String b = “test”;
String c = new String(“test”);
boolean x = a == b; // x = true
boolean y = a == c; // y = false
boolean z = a.equals(c);
// z = true

10.

Сравнение строк
String a = “test”;
String b = “TEST”;
boolean x = a.equals(b);
// x = false
boolean y = a.equalsIgnoreCase(b);
// y = true

11.

Сравнение строк
String a = “TeSt”;
String b = “tEsT”;
boolean x = a.equals(b);
// x = false
boolean y = a.equalsIgnoreCase(b);
// y = true

12.

Сравнение строк
boolean x = a < b;

13.

Сравнение строк
boolean x = a < b;
int y = a.compareTo(b);
// y = 0 если a == b
// y < 0 если a < b
// y > 0 если a > b
int z =
a.compareToIgnoreCase(b);

14.

Пустые строки и объекты
String a = null;
String b = “”;

15.

Пустые строки и объекты
String a = null;
String b = “”;
String c = new String();

16.

Пустые строки и объекты
String a = null;
String b = “”;
String c = new String();
if(a == null) {...}

17.

Пустые строки и объекты
String a = null;
String b = “”;
String c = new String();
if(a == null) {...}
if(c.isEmpty()) {...}

18.

Литералы как объекты
// str == “test”

19.

Литералы как объекты
// str == “test”
if(str.equals(“test”)) {...}

20.

Литералы как объекты
// str == “test”
if(str != null &&
str.equals(“test”)) {...}

21.

Литералы как объекты
// str == “test”
if(“test”.equals(str)) {...}

22.

Методы класса String
String word = “аттестат”;
String subword =
word.substring(2, 6);
// subword = “тест”

23.

Методы класса String
String word = “аттестат”;
boolean x = word.contains(“тест”);
// x = true
boolean y = word.startsWith(“ат”);
// y = true
boolean z = word.endsWith(“мат”);
// z = false

24.

Методы класса String
String word = “аттестат”;
int i = word.indexOf(“т”);
// i = 1
int j = word.indexOf(“т”, 3);
// j = 5

25.

Методы класса String
String word = “аттестат”;
int i = word.lastIndexOf(“т”);
// i = 7
int j = word.lastIndexOf(“т”, 3);
// j = 2

26.

Методы класса String
String word = “аттестат”;
int i = word.indexOf(“я”);
// i = -1
int j = word.lastIndexOf(“я”);
// j = -1

27.

Методы класса String
String a = “··а··б·в··”;
String b = a.trim();
// b = “а··б·в”
String c = b.toUpperCase();
// c = “А··Б·В”
String d = c.toLowerCase();
// d = “а··б·в”

28.

Методы класса String
int a = 123;
String b = String.valueOf(a);
// b = “123”
int c = Integer.parseInt(b);
// c = 123
long d = Long.parseLong(b);
double e = Double.parseDouble(b);
...

29.

Класс StringBuilder
Экземпляр класса может быть изменен
(за счет резервирования и наличия
возможности увеличения буфера)
Многие методы совпадают с методами
класса String
Методы, изменяющие экземпляр
класса, возвращают ссылку на тот же
объект

30.

Преобразование строк
String s = “test”;
StringBuilder sb =
new StringBuilder(s);
String a = sb.toString();

31.

Методы класса StringBuilder
StringBuilder string =
new StringBuilder(“test”);
string.append(“-case”);
// string = “test-case”

32.

Методы класса StringBuilder
StringBuilder a =
new StringBuilder(“1”);
a.append(“2”).append(“3”);
// a = “123”

33.

Методы класса StringBuilder
StringBuilder a =
new StringBuilder(“12345”);
a.insert(2, “--”);
// a = “12--345”
a.insert(5, ‘-’);
// a = “12--3-45”

34.

Методы класса StringBuilder
StringBuilder a =
new StringBuilder(“12345”);
a.replace(1, 4, “-II-III-IV-”);
// a = “1-II-III-IV-5”
a.delete(2, 11);
// a = “1--5”

35.

Методы класса StringBuilder
StringBuilder a =
new StringBuilder(“12345”);
a.setCharAt(2, ‘0’);
// a = “12045”
a.deleteCharAt(2);
// a = “1245”
English     Русский Правила