Извлечение символов и подстрок
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Для извлечения символов по индексу в классе String определен метод

char charAt(int index). Он принимает индекс, по которому надо получить символ, и возвращает извлеченный символ:

  String str = "Java"; char c = str.charAt(2); System.out.println(c); // v

 

Если мы хотим работать со строкой, как с массивом символов, можем конвертировать строку в массив при помощи метода toCharArray.

char[] toCharArray() — преобразует строку в новый массив символов.

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

Примечание: в данном случае мы не сможем использовать метод charAt. При помощи этого метода мы бы смогли только найти пробелы в строке, но не поменять их.

String str = "1 000 000 000";

//преобразовываем строку в массив

char[] chArray = str.toCharArray();

//перебираем все элементы массива

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

   //находим пробел           

       if(chArray[i] == ' '){

           //заменяем на точку

                   chArray[i] = '.';

   } 

}

//выводим результат

System.out.println(chArray);// 1.000.000.000

 

Модификация строк

Модификация строк не является модификацией как таковой. Дело в том, что объекты класса String после создания уже нельзя изменять. Но можно создать копию строки с изменениями. Именно это и делают следующие методы.

toLowerCase() — преобразовать строку в нижний регистр;
toUpperCase() — преобразовать строку в верхний регистр;
trim() — отсечь на концах строки пустые символы;

 



Пример

String str = " Я помню ЧУДНОЕ мгновенье "; //убрали символы пробела в начале и конце строкиstr = str.trim();//я помню чудное мгновеньеSystem.out.println(str.toLowerCase()); //Я ПОМНЮ ЧУДНОЕ МГНОВЕНЬЕSystem.out.println(str.toUpperCase());

Пример. Проверить, является ли введённое слово из 5 букв палиндромом. Если введённое слово не из 5 букв, то сообщать об ошибке. Программа должна обрабатывать ситуации, если регистр букв отличается и считать палиндромами слова вида «Комок», «РОТОР»

 

Scanner in=new Scanner (System.in);

    System.out.print("Введите слово из 5 букв:");

    String word=in.next();

    if (word.length()!=5) {

    System.out.println("Условие не выполнено!!!");

    return;

    }

    word=word.toLowerCase();//словопреобразуем в нижнийрегистр

    int n=word.length();

    boolean flag=false;

    for(int i=0; i<n/2;i++)

     if (word.charAt(i)!=word.charAt(n-1-i))

               {flag=false;

                break;

               }

               

    if (flag)    

               System.out.print("Слово - палиндром");

    else

    System.out.print("Слово - не палиндром");         

Пример. Ввести с клавиатуры 3 строки и подсчитать в них количество различных букв для 33 букв алфавита). Вывести результат на экран.
Пример вывода:
а 5
б 8
в 3
г 7

я 9

char[] alphabet=new char[33];

for(int i=0;i<32;i++)

   {

       alphabet[i]=(char)('а'+i);//задаём алфавит русских букв

   }

alphabet[32]='ё';//добавляем букву ё

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

   System.out.print(alphabet[i]+" ");//выводим алфавит

}

System.out.println();

 

String[] text=new String[] {"Привет всем","Хороший день сегодня","Пора идти в колледж"};//задаём строки

int count;//кол-во повторов буквы

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

    count=0;

    for (String t:text) {

              String s=t.toLowerCase();//строку переводим в нижний регистр

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

                       if (alphabet[i]==s.charAt(j))                                                                      count++;

                       }

                       System.out.println(alphabet[i]+" - \t"+count);

              }

Пример. Написать программу, которая вводит с клавиатуры строку текста. Программа заменяет в тексте первые буквы всех слов на заглавные.
Пример ввода:
мама мыла раму.
Пример вывода:
Мама Мыла Раму.

Scanner in=new Scanner (System.in);

System.out.print("Введите строку:");

String text=in.nextLine();

char[] a = text.toCharArray();

a[0] = Character.toUpperCase(a[0]);

     for (int i=1;i<a.length;i++)

               if (a[i]!=' ' && a[i-1]==' ')

                        a[i]=Character.toUpperCase(a[i]);

     a.toString();

     System.out.print(a);

 

Character – класс для работы с отдельными символами

String replace ( char oldChar , char newChar ), replace ( CharSequence target , CharSequence replacement ) — замена в строке одного символа или подстроки на другой символ или подстроку.

Вспомним пример, где нужно было поменять в строке символы пробела на точки и перепишем его с использованием replace:

String str = "1 000 000 000";String newStr = str.replace(" ", ".");System.out.println(newStr);// 1.000.000.000

 












Дата: 2018-11-18, просмотров: 450.