Вставка номера телефона из Outlook в текстовое поле JavaFX или текстовую область приводит к появлению посторонних символов

#java #javafx #outlook #textarea #textfield

#java #javafx #outlook #текстовая область #текстовое поле

Вопрос:

У меня возникла странная проблема, когда, если пользователь копирует и вставляет номер телефона из Outlook Contacts в текстовое поле или текстовую область в JavaFX, вместе с ним появляется куча посторонних символов.

Например, если скопировать «(555) 555-1234» из поля контакта Outlook и вставить в текстовое поле или область приложения JavaFX, результатом будет «(555) 555-1234e.UX.FlexClipboard.FUpdateAcbUi», «CV»: «ER1soZ/YLEibq7jkbdMVCg.163», «Идентификатор процесса»: «OUTLOOK.exe_16.0.13029.20308_X86_{A16C1D11-D89F-482C-9BAB-B8E46DD3150A}»} «Активность.CV»: «ER1soZ/YLEibq7jkbdMVCg.162», «Активность.Длительность «: 86, «Ac»

  • Похоже, это происходит только из полей номера телефона в Outlook. Другие поля — имя, адрес и т.д., Похоже, Работают нормально.
  • Если я вставляю из Outlook в Word текстовый файл, даже файл в IntelliJ, он отображается нормально
  • не имеет значения, копирую ли я или вставляю с помощью Ctrl-V или выделения правой кнопкой мыши или даже программно

Извините — здесь действительно нет «кода» для отображения. Я полагаю, что это произойдет с любым текстовым полем или областью приложения FX.

Идеи?

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

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

2. Есть ли у вас какие-либо приложения fx с текстовым полем? у вас есть Outlook? если это так, скопируйте номер телефона из Outlook и вставьте в приложение FX. Мне не нужно ничего писать для этого.

Ответ №1:

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

 private static String checkString(String s ){

    if (s.length() > 12){

        for(int i =0; i< s.length(); i  ){
            if(s.charAt(i) > 'a' amp;amp; s.charAt(i) < 'z'){
            return s.substring(0, i);
            }
        }

    }
    return s;
}