Код/библиотека Java для генерации кратких заголовков (для использования в симпатичных URL)

Как lassevk предполагает, выпишите новый файл, когда Вы идете, вот некоторый пример кода:

fin = open("a.txt")
fout = open("b.txt", "wt")
for line in fin:
    fout.write( line.replace('foo', 'bar') )
fin.close()
fout.close()
36
задан Community 23 May 2017 в 12:18
поделиться

1 ответ

Нормализовать вашу строку с помощью канонической декомпозиции:

  private static final Pattern NONLATIN = Pattern.compile("[^\\w-]");
  private static final Pattern WHITESPACE = Pattern.compile("[\\s]");

  public static String toSlug(String input) {
    String nowhitespace = WHITESPACE.matcher(input).replaceAll("-");
    String normalized = Normalizer.normalize(nowhitespace, Form.NFD);
    String slug = NONLATIN.matcher(normalized).replaceAll("");
    return slug.toLowerCase(Locale.ENGLISH);
  }

Это все еще довольно наивный процесс. Он не будет делать ничего для s-диеза (ß - используется в немецком языке) или любого нелатинского алфавита (греческий, кириллица, CJK и т. Д.).

Будьте осторожны при изменении регистра строки . Формы верхнего и нижнего регистра зависят от алфавита. В турецком языке U + 0069 ( i ) с заглавной буквы - U + 0130 ( İ ), а не U + 0049 ( I ), поэтому вы рискуете ввести Если вы используете String.toLowerCase () в турецкой локали, то верните в строку не-латинский символ.

39
ответ дан 27 November 2019 в 05:57
поделиться
Другие вопросы по тегам:

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