Проверка на кириллицу java

Проверка на кириллицу java

я написала конвертер который конвертирует кириллицу в латиницу. Помогите написать функцию Который пройдется по латинскому алфавиту в классе Dictionary и проверит есть ли там кириллические символы.

import java.io.*; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.IntStream; public class Main < public static void main(String[] args) throws IOException < final String DEFAULT_ENCODING = "utf-8"; if(args.length < 2 || args.length >3) < System.out.println("Неверное количество аргументов"); System.exit(1); >String inputFilePath = args[0]; String outputFilePath = args[1]; String fileEncoding = args.length == 2 ? DEFAULT_ENCODING : args[2]; BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(inputFilePath), fileEncoding)); File file = new File(outputFilePath); FileOutputStream fileOutputStream = new FileOutputStream(file, false); Writer writer = new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8); String line; StringBuilder result = new StringBuilder(); Map dictionary = new Dictionary().getDictionary(); while ((line = in.readLine()) != null) < String outLine = convertString(line, dictionary) + System.getProperty("line.separator"); System.out.println(line); System.out.println(outLine); result.append(outLine) ; >writer.write(result.toString()); in.close(); writer.flush(); writer.close(); > public static String convertString(String str, Map dictionary) < char[] chars = str.toCharArray(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < chars.length; i++) < if (dictionary.containsKey(Character.toString(chars[i]))) < stringBuilder.append(dictionary.get(Character.toString(chars[i]))); continue; >stringBuilder.append(chars[i]); > return stringBuilder.toString(); > > class Dictionary < private Mapdictionary; public Dictionary() < dictionary = new HashMap<>(); dictionary = new HashMap<>(); dictionary.put("а", "a"); dictionary.put("А", "A"); dictionary.put("ә", "á"); dictionary.put("Ә", "Á"); dictionary.put("б", "b"); dictionary.put("Б", "B"); dictionary.put("д", "d"); dictionary.put("Д", "D"); dictionary.put("е", "e"); dictionary.put("Е", "E"); dictionary.put("ф", "f"); dictionary.put("Ф", "F"); dictionary.put("г", "g"); dictionary.put("Г", "G"); dictionary.put("ғ", "ǵ"); dictionary.put("Ғ", "Ǵ"); dictionary.put("х", "h"); dictionary.put("Х", "H"); dictionary.put("һ", "һ"); dictionary.put("Һ", "H"); dictionary.put("і", "i"); dictionary.put("І", "I"); dictionary.put("и", "ı"); dictionary.put("И", "I"); dictionary.put("й", "ı"); dictionary.put("Й", "I"); dictionary.put("ж", "j"); dictionary.put("Ж", "J"); dictionary.put("к", "k"); dictionary.put("К", "K"); dictionary.put("л", "l"); dictionary.put("Л", "L"); dictionary.put("м", "m"); dictionary.put("М", "M"); dictionary.put("н", "n"); dictionary.put("Н", "N"); dictionary.put("ң", "ń"); dictionary.put("Ң", "Ń"); dictionary.put("о", "o"); dictionary.put("О", "O"); dictionary.put("ө", "ó"); dictionary.put("Ө", "Ó"); dictionary.put("п", "p"); dictionary.put("П", "P"); dictionary.put("қ", "q"); dictionary.put("Қ", "Q"); dictionary.put("р", "r"); dictionary.put("Р", "R"); dictionary.put("с", "s"); dictionary.put("С", "S"); dictionary.put("ш", "sh"); dictionary.put("Ш", "Sh"); dictionary.put("ч", "ch"); dictionary.put("Ч", "Ch"); dictionary.put("т", "t"); dictionary.put("Т", "T"); dictionary.put("ү", "ú"); dictionary.put("Ү", "Ú"); dictionary.put("ұ", "u"); dictionary.put("Ұ", "U"); dictionary.put("в", "v"); dictionary.put("В", "V"); dictionary.put("ы", "y"); dictionary.put("Ы", "Y"); dictionary.put("у", "ý"); dictionary.put("У", "Ý"); dictionary.put("з", "z"); dictionary.put("З", "Z"); dictionary.put("э", "e"); dictionary.put("Э", "E"); dictionary.put("ю", "ıý"); dictionary.put("Ю", "Iý"); dictionary.put("я", "ıa"); dictionary.put("Я", "Ia"); dictionary.put("ц", "ts"); dictionary.put("Ц", "Ts"); dictionary.put("ь", ""); dictionary.put("Ь", ""); dictionary.put("ъ", ""); dictionary.put("Ъ", ""); dictionary.put("ё", "ıo"); dictionary.put("Ё", "Io"); dictionary.put("щ", "sh"); dictionary.put("Щ", "Sh"); > public Map getDictionary() < return dictionary; >>

Источник

Читайте также:  Html css стили color

Проверка символов на кириллицу и латиницу

Здравствуйте, помогите найти ошибку. Задание — следующее:
Пользователь вводит с клавиатуры букву, программа должна определить, в какой раскладке введена буква, в латинской или кириллице. Вывести в консоль: «латиница» если буква введена латиницей, и «кириллица» если буква относится к кириллическому алфавиту. Если введена цифра а не буква, вывести «цифра». Если символ не относится ни к буквам ни к цифрам вывести «невозможно определить». Программа не должна зависеть от регистра букв.

Все работает, однако в консоле после определения кириллицы и латиницы срабатывает условие else. При определении цифры этого не происходит. Подскажите пожалуйста в чем причина.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
public static void main(String[]args) { Scanner sc = new Scanner(System.in); System.out.println("Введите символ:"); String simvol = sc.nextLine(); Pattern patlatletter = Pattern.compile("[a-zA-Z]"); Matcher matlatletter = patlatletter.matcher(simvol); Pattern patkirletter = Pattern.compile("[а-яА-Я]"); Matcher matkirletter = patkirletter.matcher(simvol); Pattern patnumber = Pattern.compile("1"); Matcher matnumber = patnumber.matcher(simvol); if(matlatletter.matches()==true) { System.out.println("Латиница"); } if(matkirletter.matches()==true) { System.out.println("Кирилица"); } if(matnumber.matches()==true) { System.out.println("Цифра"); } else { System.out.println("Невозможно определить"); } }

Источник

Как сделать проверку, присутствует ли Кириллица в строке?

Как сделать проверку на кириллицу?
Например, если в строке есть кириллица то выведет ошибку, а если все латиница, то ошибки не будет?
Как сделать подобную проверку в java?

String s = "Тест"; boolean cyrillic = s.chars() .mapToObj(UnicodeBlock::of) .anyMatch(b -> b.equals(UnicodeBlock.CYRILLIC));

Используйте проверку строки регулярным выражением.
В вашем случае нужно искать не запрещенные символы, а наоборот, проверять, что строка содержит только разрешенные символы.
https://ru.stackoverflow.com/questions/569779/%D0%.

Читайте также:  Time series prediction in python

Почему? Логичнее как раз проверять на запрещённые символы: их меньше, и их конечное количество. Хотя если действительно, в качестве разрешённых могут выступать только буквы английского алфавита, то тогда фифти-фифти.

Главное, чтобы множество, описываемое регуляркой, было охватываемое и соответствовало назначению этой строки.
Допустим, вам нужна строка, в которой предполагается хранить логин.
Предполагаем, что там только латиница в разных регистрах, возможно, еще цифры.
Описать множество латиницы и доп. знаков легче, чем множество ему противоположное.
Если брать по множеству-отрицанию, то отсекая кириллицу, мы можем упустить из виду не только русский алфавит, но и знаки, используемые в восточноевропейских языках.
Можем не охватить иероглифы, если кодировка у нас unicode, и мы не ждем их, если в ТЗ об этом даже не подумали.

Источник

How to identify cyrillic characters in String?

How can I identfiy my string contains cyrillic characters?
Whether my String has cyrillic characters in it?

Advertisements

Karl Uppiano

How can I identfiy my string contains cyrillic characters?
Whether my String has cyrillic characters in it?

I know it’s a little weird, but you might iterate through your string,
testing each character, using something like this:

boolean isCyrillic(char c) return
Character.UnicodeBlock.CYRILLIC.equals(Character.UnicodeBlock.of(c));
>

Perhaps not the most efficient, but you don’t have to recreate and maintain
parts of the Unicode character database this way.

t.javast

Andreas Leitgeb

Excuse me, I’m just curious, as to why one would need
this. Recognizing only cyrillic, but e.g. not chinese,etc.
Does cyrillic include both greek and russian?

If it’s about language specifics, would you also
recognize e.g. «greeklish» (greek written with roman
letters, like ‘ellhnika’) ?

Please help me widen my horizon.

Thomas Fritsch

Excuse me, I’m just curious, as to why one would need
this. Recognizing only cyrillic, but e.g. not chinese,etc.
Does cyrillic include both greek and russian?

No, Cyrillic ist just Cyrillic, and has nothing to do with Greek
characters. The Cyrillic characters are ‘\u0400’ to ‘\u04FF’. The Greek
characters are ‘\u0370’ to ‘\u03FF’. However, the ‘A’ in Latin, Greek,
Cyrillic look all the same, although they are 3 different characters
(‘\0041’, ‘\u0391’, ‘\u0410’).
It seems you confuse character ranges (like Cyrillic) with languages
(like Russian, Bulgarian, Serbian) which use these characters.
May be the confusion arises because there is only one language in the
world (the Greek language) which uses Greek characters.

If it’s about language specifics, would you also
recognize e.g. «greeklish» (greek written with roman
letters, like ‘ellhnika’) ?

Roedy Green

How can I identfiy my string contains cyrillic characters?
Whether my String has cyrillic characters in it?

You will likely discover the range 0x400 .. 0x4ff covers the basic
chars. (there are two other ranges)

Advertisements

Andreas Leitgeb

I think there is a misunderstanding. Greek and Russian
character sets are generally referred to as «cyrillic», and
so are the scripts of some more countries (you named serbia,
yourself), whose people use a script whose «R» looks like a
latin «P» (*)

Now that it’s clear that you mean the subset of unicode chars
used for russian language, I’d still, and out of pure curiosity,
like to know, what difference it makes in your application, if
a user types russian letters as opposed to whether he’s writing
chinese, vietnamese, X-hosa, accented latin letters or just
plain us-latin. . unless of course, if telling me that
would conflict with any non disclosure agreements.

(*): yes, I’m aware that this is not a language science
worthy definition of cyrillic scripts

Источник

Как обнаружить в Java, если строка содержит кириллицу?

1 ответ

Я думаю, что производительность будет лучше, если я буду избегать использования регулярных выражений? Я на Android, если это имеет значение.

@knezmilos Я не думаю, что вы заметите большую разницу (это зависит от размера текста — вы можете попробовать измерить оба пути). Я предпочитаю второй способ, потому что это более понятно.

Ещё вопросы

  • 0 Как вернуть слово с заглавной первой буквой
  • 1 Как читать китайский текстовый файл (Python)
  • 1 Как исключить слова, которые имеют не алфавитные символы из строки
  • 1 Циклы в Python: изменить один столбец на основе значений в других столбцах
  • 0 Как включить кусок кода Java внутри HTML-тега в шаблон игрового фреймворка?
  • 0 Подождите, пока звук не закончится, чтобы использовать страницу
  • 0 развернуть и свернуть Просмотр функциональности в Angularjs
  • 1 Android Studio — сбой службы после того, как WebView использует файл: /// для отображения локального веб-сайта
  • 1 Отображение всего пути каждого листа на дереве
  • 0 Зацикливание SVG прямоугольников из базы данных
  • 1 Как преобразовать дату, которую пользователь выбирает в формате MM-дд-гггг, в формат гггг-мм-дд в Java
  • 1 Нужно конвертировать действительные значения даты и вывести ошибочные значения в Python
  • 0 код внутри #ifdef включен во время выполнения или во время самой компиляции?
  • 0 Скопируйте строки из 2 таблиц из одной базы данных в 1 таблицу в другой базе данных, но тот же сервер в PHP
  • 1 Запустите функцию обратного вызова после завершения forEach
  • 0 преобразование из двоичной строки в int с использованием strtoll?
  • 1 Перестановка элементов между A и B для получения равенства сумм
  • 0 Получить текст всех вариантов выбора элементов?
  • 0 Ошибка MySQL в NodeJS: невозможно подключиться как root
  • 1 База данных Firebase в реальном времени и хранилище
  • 0 $ (). attr (). html ();
  • 1 Усечение строки до количества символов X?
  • 1 MediaPlayer прекращает воспроизведение музыки из Интернета через несколько минут в спящем режиме
  • 0 PDO вставляет последний идентификатор вставки в две таблицы
  • 0 libssh2_config.h не создается при установке libssh2
  • 0 jQuery добавление новых свойств в JavaScript DOM Object
  • 1 Сравните 2 списка с .intersection ()
  • 1 Возникли проблемы с этим методом, ошибка компиляции
  • 1 Как вызвать Interstitial, нажав на элемент в списке, который проходит через адаптер?
  • 0 Выбрать все данные из второй таблицы, где имя равно значению столбца из первой таблицы
  • 0 Освобождение памяти между циклами выполнения
  • 1 Почему TextReader жалуется, когда файл открывается другим процессом?
  • 0 Как отобразить поле в корзине с информацией о сумке, в которую был брошен товар, с помощью jquery
  • 0 при изменении маршрута, директива не получает имя класса $ route
  • 0 Я хочу получать вложения в электронное письмо от формы
  • 0 Как добавить идентификатор для элемента в JQuery
  • 1 D3 с пользовательским элементом: TypeError: t is null
  • 0 boost :: asio полнодуплексная связь
  • 1 Ошибка чтения метаданных атрибута CollectionKind
  • 1 FileLoadException не обработан
  • 0 Угловое расширение директивы
  • 1 Пользовательская сериализация gemfire не помогает
  • 0 Центрирование текста с использованием CSS
  • 1 Как получить наиболее близкие повторяющиеся значения в массиве к целевому значению, используя Javascript?
  • 1 Привет! Я делаю код Java, указанный ниже, для формы входа. Он не перенаправляет меня на страницу employee.jsp или клиента jsp.
  • 1 Потоки Spring JmsTemplate Daemon, которые остаются в живых после остановки приложения tomcat
  • 0 Угловое двустороннее приветствие привязки данных
  • 0 Селектор класса jquery для mvc3 не работает
  • 1 Начните N Количество асинхронных методов
  • 1 dataContractSerializer известных типов

Источник

Оцените статью