Я хочу заменить арабскую букву Heh (U + 0647) на арабскую букву Ae (U + 06D5) в данной строке, используя метод Java replaceAll(regex, replacement)
. У меня есть этот код:Java replaceAll не может заменить символ в строке
String arabicHeh = "\u0647"; // Arabic Letter Heh
String arabicAe = "\u06D5"; // Arabic Letter Ae
String text = txtPane.getText();
String newText = text.replaceAll(arabicHeh, arabicAe);
Когда я печатать newText
переменную ничего не изменилось, письмо arabicHeh
все еще существует в строке.
Примечание: код работает, когда я пишу это таким образом:
String newText = text.replaceAll("ه", arabicAe);
Другими словами, код работает, когда я делаю арабской буквы самого Хе в качестве параметра replaceAll(regex, replacement)
, но я не хочу написать символ "ه"
внутри моего кода, потому что не все IDE могут читать/показывать этот символ.
Я думаю arabibHeh
имеет проблему, потому что также text.contains(arabicHeh)
оценивает в false
в то время как он определенно содержит arabicHeh
, я думал, что может быть проблема в получении текста из JTextPane
(String text = txtPane.getText();
), но когда я печатаю text
утешать я получаю тот же текст как указано в JTextPane
, включая arabicHeh
.
Любой может объяснить, почему text.contains(arabicHeh)
оценивает false
или почему код не работает в text.replaceAll(arabicHeh, arabicAe)
?
вы должны попробовать для печати 'arabicHeh'or' arabicAe', чтобы увидеть, правильно ли это – CSK
Вы должны указать исходное значение 'text' – Andremoniy
Извините, ваш ответ не ясен. @CSK –