String str = new String(s); // str="Java"
if (!str.isEmpty()) {
int i = str.length(); // i=4
str = str.toUpperCase(); // str="JAVA"
String num = String.valueOf(6); // num="6"
num = str.concat("-" + num); // num="JAVA-6"
char ch = str.charAt(2); // ch='V'
i = str.lastIndexOf('A'); // i=3 (-1 если нет)
num = num.replace("6", "SE"); // num="JAVA-SE"
str.substring(0, 4).toLowerCase(); // java
str = num + "-6";// str="JAVA-SE-6"
String[] arr = str.split("-");
for (String ss : arr) { // В результате будет выведен массив строк (в 3 строчки): JAVA SE 6
System.out.println(ss);
}
} else { System.out.println("String is empty!"); }
}
}
Пример сравнение строк. В этом примере рассмотрены особенности хранения и идентификации объектов на примере вызова метода equals(), сравнивающего строку String с указанным объектом и метода hashCode(), который вычисляет хэш-код объекта (hashCode – это цифра, которая формируется для объекта по какому то правилу, например для объекта класса String по такой формуле: s[0]*31^(n-1) s[1]*31^(n-2) … s[n-1]):
package tsn01.string;
public class TSN01_String {
public static void main(String[] args) {
String s1 = "Java";
String s2 = "Java";
String s3 = new String("Java");
System.out.println(s1 + "==" + s2 + " : " + (s1 == s2)); // true
System.out.println(s1 + "==" + s3 + " : " + (s1 == s3)); // false
System.out.println(s1 + " equals " + s2 + " : " + s1.equals(s2)); // true
System.out.println(s1 + " equals " + s3 + " : " + s1.equals(s3)); // true
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s3.hashCode());
}
}
В результате на экран будет выведено:
Java==Java : true
Java==Java : false
Java equals Java : true
Java equals Java : true
2301506
2301506
2301506
Пример сортировки массива строк методом перебора:
package tsn01.string;
public class TSN01_String {
public static void main(String[] args) {
String a[] = {" Alena", "Alice ", " alina", " albina", " Anastasya",
" ALLA ", "AnnA "}; // Массив строк
for (int j = 0; j < a.length; j++) { // Цикл по массиву строк
// Удаляем пробелы с концов строк и приводим к верхнему регистру
a[j] = a[j].trim().toLowerCase();
}
// Сортировка строк методом пузырька
for (int j = 0; j < a.length – 1; j++) { // Цикл по массиву строк
for (int i = j + 1; i < a.length; i++) { // Цикл по массиву строк
if (a[i].compareTo(a[j]) < 0) { // Сравнение строк
String temp = a[j]; a[j] = a[i]; a[i] = temp; // Обмен значений в массиве строк
}
}
}
int i = -1;
while (++i < a.length) { System.out.print(a[i] + " "); } // Вывод массива строк на экран
}
}
В результате на экран будет выведено:
albina alena alice alina alla anastasya anna
Вызов метода trim() обеспечивает удаление всех начальных и конечных символов пробелов. Метод compareTo() выполняет лексикографическое сравнение строк между собой по правилам Unicode.
Пример работы с динамическими строками. Рассмотрим пример преобразования переменной типа «StringBuilder» к «String» через метод toString:
package tsn01.string;
public class TSN01_String {
public static void main(String[] args) {
StringBuilder s = new StringBuilder("abcd");
s.append('e');//abcde
s.delete(1, 2);//acde
s.insert(1, 'b');//abcde
s.deleteCharAt(2);//abde
String ans = s.toString();
System.out.println(ans); // На экран выведется "abde"
}
}
2 Простейшие программы
2.1 Консольные программы
Консольные программы на Java – это наиболее простой вид программ, не имеющих собственного графического интерфейса, весь ввод и вывод информации происходит в окне консоли. В настоящее