суббота, 11 июня 2016 г.

Задачи со строками в Java SE

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

В первом варианте решения, у нас есть два слова которые хранятся в двух переменных str1 и str2. Также создаем третью переменную типа String, где будем хранить наше новое слово. Воспользуемся методом substring(x,y) который возвращает строку с символа x по символ y, а также методом length() - который возвращает длину строки. Думаю дальше логику работы программы будет не сложно понять.


public class Main {

   public static void main(String[] args) {

       String str1 = "ГОРА";
       String str2 = "РОГА";
       System.out.println("Первое слово = " + str1);
       System.out.println("Второе слово = " + str2);
       String str3 = (str1.substring(0, str1.length()/2)) +
               (str2.substring(str2.length()/2, str2.length()));
       System.out.println(str3);
   }
}

Во втором варианте решения воспользуемся специальным классом StringBuffer. Главным отличием от String это то что объекты класса String являются неизменяемыми. Поэтому создается впечатление что вы меняете строку, а на самом деле вы создаете новую строку. StringBuffer допускает изменения строки. 

С помощю метода append() добавим слова. Метод delete(x,y) удаляет символы в строке с x по y. Ну далее я думаю все наглядно понятно.

public class Main {
   public static void main(String[] args) {   
       StringBuffer str3 = new StringBuffer();
       StringBuffer str4 = new StringBuffer();
       str3.append("МОЛОКО");
       str4.append("ВЕРОЯТНО");
       int l3 = str3.length();
       int l4 = str4.length();
       System.out.println("Первое слово = " + str3 + " количество букв " + l3);
       System.out.println("Второе слово = " + str4 + " количество букв " + l4);
       int d1 = l3/2;
       int d2 = l4/2;
       str3.delete(d1, l3);
       str4.delete(0, d2);
       System.out.println(str3.toString() + str4.toString());
   }



В дальнейшем организовать ввод слов пользователем не составит труда реализовать с помощью класса Scanner.

Комментариев нет:

Отправить комментарий