Упражнения. 1. Пусть четыре строки s1, s2, s3 и s4 заданы следующим образом

1. Пусть четыре строки s1, s2, s3 и s4 заданы следующим образом:

String s1 = "Welcome to Java";

String s2 = s1;

String s3 = new String("Welcome to Java");

String s4 = "Welcome to Java";

Каковы результаты следующих выражений?


1.1) s1 == s2

1.2) s2 == s3

1.3) s1.equals(s2)

1.4) s2.equals(s3)

1.5) s1.compareTo(s2)

1.6) s2.compareTo(s3)

1.7) s1 == s4

1.8) s1.charAt(0)

1.9) s1.indexOf('j')

1.10) s1.indexOf("to")

1.11) s1.lastIndexOf('a')

1.12) s1.lastIndexOf("o", 15)

1.13) s1.length()

1.14) s1.substring(5)

1.15) s1.substring(5, 11)

1.16) s1.startsWith("Wel")

1.17) s1.endsWith("Java")

1.18) s1.toLowerCase()

1.19) s1.toUpperCase()

1.20) "Welcome ".trim()

1.21) s1.replace('o','T')

1.22) s1.replaceAll("o","T")

1.23) s1.replaceFirst("o","T")

1.24) s1.toCharArray()

1.24)


2. Предположим, что s1 и s2 – две строки. Какие из следующих утверждений или выражений являются неверными?

String s = new String("new string");

String s3 = s1 + s2;

String s3 = s1 - s2;

s1 == s2;

s1 >= s2;

s1.compareTo(s2);

int i = s1.length();

char c = s1(0);

char c = s1.charAt(s1.length()/2);

char c = s1.charAt(s1.length());

3. Что будет напечатано в результате выполнения следующего кода?

String s1 = "Welcome to Java";

String s2 = s1.replace("o", "abc");

System.out.println(s1);

System.out.println(s2);

4. Пусть строка s1 равна "Welcome", а s2 равна "welcome". Запишите коды для следующих заданий:

4.1) Проверьте, равны ли s1 и s2, результат присвойте логической переменной isEqual;

4.2) Проверьте, равны ли s1 и s2 без учета регистра, результат присвойте логической переменной isEqual;

4.3) Сравните s1 и s2, результат присвойте целочисленной переменной х.

4.4) Сравнивает s1 и s2 без учета регистра, результат присвойте целочисленной переменной х.

4.5) Проверьте, имеет ли s1 префикс AAA, результат присвойте логической переменной b;

4.6) Проверьте, имеет ли s1 суффикс AAA, результат присвойте логической переменной b;

4.7) Длину s1 присвойте целочисленной переменной х;

4.8) Присвойте первый символ s1 символьной переменной х;

4.9) Создайте новую строку s3, которая объединяет s1 и s2.

4.10)Создайте подстроку из s1, начиная с индекса 1;

4.11)Создайте подстроку из s1 от индекса 1 до индекса 4;

4.12)Создайте новую строку s3, преобразовав строку s1 в нижний регистр;

4.13)Создайте новую строку s3, преобразовав строку s1 в верхний регистр;

4.14)Создайте новую строку s3, удалив пробелы на обоих концах s1;

4.15)Замените все вхождения символа e на Е в s1, результат запишите в новую строку s3.

4.16)Разделите на слова строку Welcome to Java and HTML в массив tokens. В качестве разделителя использовать пробел.

4.17)Присвойте индекс первого вхождения символа е в s1 целочисленной переменной х;

4.18)Присвойте индекс последнего вхождения строки abc в s1 целочисленной переменной х.

5. Что будет распечатано в результате выполнения следующего кода и почему?

public class Test {

String text;

public Test(String s) {

text = s;

}

public static void main(String[] args) {

Test test = new Test("ABC");

System.out.println(test);

}

}

6. Что будет распечатано в результате выполнения следующего кода?

public class Test {

public static void main(String[] args) {

String s = "Hi, Good Morning";

System.out.println(m(s));

}

public static int m(String s) {

int count = 0;

for (int i = 0; i < s.length(); i++)

if (Character.isUpperCase(s.charAt(i)))

count++;

return count;

}

}

7. Предположим, что строки s1 и s2 определены следующим образом:

StringBuilder S1 = новая StringBuilder ("Java");

StringBuilder s2 = новая StringBuilder ("HTML");

Чему будет равна строка s1 после каждого из следующих операторов. Предположим, что операторы выполняются независимо друг от друга.

7.1) s1.append(" is fun");

7.2) s1.append(s2);

7.3) s1.insert(2, "is fun");

7.4) s1.insert(1, s2);

7.5) s1.charAt(2);

7.6) s1.length();

7.7) s1.deleteCharAt(3);

7.8) s1.delete(1, 3);

7.9) s1.reverse();

7.10) s1.replace(1, 3, "Computer");

7.11) s1.substring(1, 3);

7.12) s1.substring(2);

8. Что будет распечатано в результате выполнения следующего кода?

public class Test {

public static void main(String[] args) {

String s = "Java";

StringBuilder builder = new StringBuilder(s);

change(s, builder);

System.out.println(s);

System.out.println(builder);

}

private static void change(String s, StringBuilder builder) {

s = s + " and HTML";

builder.append(" and HTML");

}

}

9. Определите результаты выполнения следующей программы, при вызове ее следующими тремя способами:

1. java Test I have a dream

2. java Test "1 2 3"

3. java Test

public class Test {

public static void main(String[] args) {

System.out.println("Number of strings is " + args.length);

for (int i = 0; i < args.length; i++)

System.out.println(args[i]);

}

}

10. Напишите содержимое файла temp.txt после выполнения следующей программы:

import java.io.*;

public class Test {

public static void main(String[] args) throws Exception {

PrintWriter output = new PrintWriter("temp.txt");

output.printf("amount is %f %e\r\n", 32.32, 32.32);

output.printf("amount is %5.4f %5.4e\r\n", 32.32, 32.32);

output.printf("%6b\r\n", (1 > 2));

output.printf("%6s\r\n", "Java");

output.close();

}

}

11. Предположим, с клавиатуры были введены 45 57,8 789, а затем нажата клавиша Enter. Чему будут равны переменные после выполнения следующего кода:

Scanner input = new Scanner(System.in);

int intValue = input.nextInt();

double doubleValue = input.nextDouble();

String line = input.nextLine();

12. Предположим, что с клавиатуры ввели 45, нажали клавишу Enter, 57,8, нажали клавишу Enter, 789, и нажали клавишу Enter. Чему будут равны переменные после выполнения следующего кода:

Scanner input = new Scanner(System.in);

int intValue = input.nextInt();

double doubleValue = input.nextDouble();

String line = input.nextLine();

14. Как известно, можно проверить, является ли строка подстрокой другой строки с помощью метода indexOf() класса String. Разработайте собственный метод, выполняющий данную функцию. Напишите программу, которая предлагает пользователю ввести две строки, и проверяет, является ли первая строка подстрокой второй.

15. Напишите метод, который подсчитывает количество букв в строке (не используя метод length) со следующим заголовком:

public static int countLetters(String s)

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

16. Некоторые веб-сайты накладывают определенные правила на вводимые пользователями пароли. Напишите метод, который проверяет, является ли строка допустимым паролем. Предположим, что пароль должен соответствовать следующим правилам:

- содержать не менее восьми символов;

- состоять только из букв и цифр;

- содержать не менее двух цифр.

Напишите программу, которая предлагает пользователю ввести пароль и отображает Valid Password, если правила соблюдены или Invalid Password в противном случае.

17. Напишите метод, который подсчитывает количества каждой цифры в строке, используя следующий заголовок:

public static int[] count(String s)

Метод подсчитывает, сколько раз цифра появляется в строке и возвращает массив из десяти элементов, каждый из которых содержит значение счетчика для соответствующей цифры. Так, например, после выполнения int[] counts = count("12203AB3"), counts[0] равен 1, counts[1] равен 1, counts[2] равен 2, counts[3] равен 2.

Напишите тестовую программу, которая предлагает пользователю ввести строку и отображает количества вхождений каждой цифры в строку.

18. Напишите метод, который возвращает отсортированную строку и имеет следующий заголовок:

public static String sort(String s)

Например, sort("acb") вернет abc. Напишите тестовую программу, которая предлагает пользователю ввести строку и выводит отсортированную строку.

19. Напишите метод, который проверяет, является ли два слова анаграммой. Два слова являются анаграммой, если они содержат те же буквы в любом порядке. Так, например, слова крона и нора являются анаграммой. Заголовок метода:

public static boolean isAnagram(String s1, String s2)

Напишите тестовую программу, которая предлагает пользователю ввести две строки и, если они анаграммы, отображает two strings are anagrams либо two strings are not anagrams в противном случае.

20. Напишите программу, которая считывает из текстового файла строку и выводит на экран количество заглавных букв в данной строке.

21. Напишите рекуррентный метод для удаления непустого каталога на диске.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: