Для извлечения символов по индексу в классе 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, просмотров: 514.