Замена всех неалфавитно-цифровых символов с пустыми строками

класс javafx.scene.Node имеет пару методов setUserData (Object) и Object getUserData ()

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

So , вы можете вызвать page.setUserData (info);

И контроллер может проверить, задана ли информация. Кроме того, вы можете использовать ObjectProperty для пересылки данных назад, если это необходимо.

Соблюдайте документацию здесь: http://docs.oracle.com/javafx/2/api/javafx/fxml /doc-files/introduction_to_fxml.html Перед фразой «В первой версии handleButtonAction () помечен с помощью @FXML, чтобы разрешить разметку, определенную в документе контроллера, вызвать ее. Во втором примере поле кнопки аннотируется, чтобы позволить загрузчику устанавливать его значение. Метод initialize () аналогично аннотируется. "

Итак, вам нужно связать контроллер с узлом и установить пользовательские данные для узла.

183
задан Alex Gomes 26 November 2009 в 20:28
поделиться

6 ответов

Используйте [^ A-Za-z0-9] .

Примечание: удален пробел, поскольку он обычно не считается буквенно-цифровым.

231
ответ дан 23 November 2019 в 05:55
поделиться

Гуава CharMatcher предоставляет краткое решение:

output = CharMatcher.javaLetterOrDigit().retainFrom(input);
0
ответ дан 23 November 2019 в 05:55
поделиться

Попробуйте

return value.replaceAll("[^A-Za-z0-9]", "");

или

return value.replaceAll("[\\W]|_", "");
122
ответ дан 23 November 2019 в 05:55
поделиться
return value.replaceAll("[^A-Za-z0-9 ]", "");

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

48
ответ дан 23 November 2019 в 05:55
поделиться

Регулярные выражения Java не требуют, чтобы вы ставили косую черту ( / ) или любой другой разделитель вокруг регулярного выражения, в отличие от других языков, таких как Perl, для пример.

10
ответ дан 23 November 2019 в 05:55
поделиться

Я создал этот метод для создания имен файлов:

public static String safeChar(String input)
{
    char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray();
    char[] charArray = input.toString().toCharArray();
    StringBuilder result = new StringBuilder();
    for (char c : charArray)
    {
        for (char a : allowed)
        {
            if(c==a) result.append(a);
        }
    }
    return result.toString();
}
8
ответ дан 23 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: