`
寻梦者
  • 浏览: 637699 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java基础之format的使用

阅读更多

  private static class FormatRule {
        private Pattern mPattern;
        private String mReplaceWith;

        /**
         * Create a wiki formatting rule.
         *
         * @param pattern Search string to be compiled into a {@link Pattern}.
         * @param replaceWith String to replace any found occurances with. This
         *            string can also include back-references into the given
         *            pattern.
         * @param flags Any flags to compile the {@link Pattern} with.
         */
        public FormatRule(String pattern, String replaceWith, int flags) {
            mPattern = Pattern.compile(pattern, flags);
            mReplaceWith = replaceWith;
        }

        /**
         * Create a wiki formatting rule.
         *
         * @param pattern Search string to be compiled into a {@link Pattern}.
         * @param replaceWith String to replace any found occurances with. This
         *            string can also include back-references into the given
         *            pattern.
         */
        public FormatRule(String pattern, String replaceWith) {
            this(pattern, replaceWith, 0);
        }

        /**
         * Apply this formatting rule to the given input string, and return the
         * resulting new string.
         */
        public String apply(String input) {
            Matcher m = mPattern.matcher(input);
            return m.replaceAll(mReplaceWith);
        }

    }

    /**
     * List of internal formatting rules to apply when parsing wiki text. These
     * include indenting various bullets, apply italic and bold styles, and
     * adding internal linking.
     */
    private static final List<FormatRule> sFormatRules = new ArrayList<FormatRule>();

    static {
        // Format header blocks and wrap outside content in ordered list
        sFormatRules.add(new FormatRule("^=+(.+?)=+", "</ol><h2>$1</h2><ol>",
                Pattern.MULTILINE));

        // Indent quoted blocks, handle ordered and bullet lists
        sFormatRules.add(new FormatRule("^#+\\*?:(.+?)$", "<blockquote>$1</blockquote>",
                Pattern.MULTILINE));
        sFormatRules.add(new FormatRule("^#+:?\\*(.+?)$", "<ul><li>$1</li></ul>",
                Pattern.MULTILINE));
        sFormatRules.add(new FormatRule("^#+(.+?)$", "<li>$1</li>",
                Pattern.MULTILINE));

        // Add internal links
        sFormatRules.add(new FormatRule("\\[\\[([^:\\|\\]]+)\\]\\]",
                String.format("<a href=\"%s://%s/$1\">$1</a>", WIKI_AUTHORITY, WIKI_LOOKUP_HOST)));
        sFormatRules.add(new FormatRule("\\[\\[([^:\\|\\]]+)\\|([^\\]]+)\\]\\]",
                String.format("<a href=\"%s://%s/$1\">$2</a>", WIKI_AUTHORITY, WIKI_LOOKUP_HOST)));

        // Add bold and italic formatting
        sFormatRules.add(new FormatRule("'''(.+?)'''", "<b>$1</b>"));
        sFormatRules.add(new FormatRule("([^'])''([^'].*?[^'])''([^'])", "$1<i>$2</i>$3"));

        // Remove odd category links and convert remaining links into flat text
        sFormatRules.add(new FormatRule("(\\{+.+?\\}+|\\[\\[[^:]+:[^\\\\|\\]]+\\]\\]|" +
                "\\[http.+?\\]|\\[\\[Category:.+?\\]\\])", "", Pattern.MULTILINE | Pattern.DOTALL));
        sFormatRules.add(new FormatRule("\\[\\[([^\\|\\]]+\\|)?(.+?)\\]\\]", "$2",
                Pattern.MULTILINE));

    }
 
分享到:
评论

相关推荐

    JAVA String.format方法使用介绍

    在JDK1.5中,String类增加了一个非常有用的静态函数format(String format,...该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论一下format 参数的格式及含义。

    google-java-format一个重新格式化Java源代码以符合GoogleJavaStyle的程序

    在实际使用`google-java-format` 时,开发者可以根据项目需求选择相应的配置,例如设置代码风格的版本,决定是否忽略某些规则,或者自定义格式化行为。同时,通过持续集成(CI)流程,可以确保提交到版本控制系统的...

    google-java-format,.zip

    除了基础的格式化功能,`google-java-format` 还可以与其他代码质量工具结合使用,例如Checkstyle、PMD或FindBugs,以实现更全面的代码质量检查和改进。通过这种方式,开发者可以更加专注于编写功能,而不用担心编码...

    Java基础之计算器

    在本主题中,我们将深入探讨“Java基础之计算器”的实现,这是一个典型的编程实践项目,用于增强对Java语言的理解。计算器程序通常包括基本的数学运算,如加、减、乘、除,以及可能的更复杂的计算功能。这个项目可以...

    java李兴华学习笔记之Java常用类库

    根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库的基础知识与实践技巧。课程内容分为两大部分: 1. **上次课程的主要知识...

    JAVA_String.format

    JAVA中的`String.format`方法是一种强大的工具,用于创建格式化的字符串。它允许用户按照指定的模式格式化输出,尤其在处理数字、字符、日期等数据类型时极为有用。接下来,我们将深入探讨`String.format`方法如何...

    经典JAVA基础.txt

    根据提供的文件信息,我们可以归纳出一系列关于Java基础知识的关键知识点。以下是对这些知识点的详细解析: ### 1. Java 的跨平台特性 Java 最为人所熟知的特点之一就是它的跨平台能力,即“一次编写,到处运行”...

    Java基础之Date和Calendar类的使用方法

    Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...

    Java常用的基础类

    Java 基础类 Java 语言提供了丰富的基础类,以便程序员更方便地编写程序。这些基础类主要分布在 java.lang、java.util、java.io、java.sql、java.text 等包中。 1. 包装类 包装类是 Java 语言中最基本的类之一,...

    @JsonFormat的使用jackson-annotations

    本文将深入探讨`@JsonFormat`注解的使用,以及它在Jackson库中的作用,特别是与`jackson-annotations.jar`、`jackson-core.jar`和`jackson-databind.jar`这三个核心组件的关系。 首先,让我们了解Jackson的基本构成...

    java基础之数组

    它是Java基础中非常重要的一个概念,因为几乎在所有类型的程序中都会用到数组。数组可以存储基本数据类型,也可以存储对象的引用。数组一旦创建,其大小就固定不变。 Java提供了八种基本数据类型来表示数字,这些...

    format模板

    在IT行业中,代码格式化是开发...总的来说,理解和使用"format模板"对于提升代码质量和团队协作效率至关重要,而华为提供的`huawei_code_formater.xml`和`huawei_codetemplates.xml`文件则是实现这一目标的有效工具。

    java 使用Date类获取系统的当前时间

    总的来说,`java.util.Date` 类在获取和表示当前系统时间上是一个基础且实用的工具,虽然在新的Java版本中有了更好的替代品,但理解其工作原理对于理解Java的日期和时间处理至关重要。在实际编程中,根据项目需求和...

    使用JAVA实现日历功能

    例如,在我们的代码中,我们使用`System.out.print`方法来输出星期的名称,并使用`String.format`方法来格式化输出日期。 知识点5:异常处理 在实现日历功能时,我们需要使用异常处理来捕捉可能出现的错误。在Java...

    java SE基础课程

    Java SE基础课程是针对初学者设计的一门课程,主要涵盖了Java编程语言的基础知识。这门课程将引导学生深入了解Java的核心概念,包括数据类型、控制结构、类与对象、异常处理等,同时也涉及到一些核心库的使用,如...

    java读写hdf5格式文件需要使用的库

    Java编程语言在处理科学数据时,常常会遇到HDF5(Hierarchical Data Format 5)这种文件格式。HDF5是一种高效、灵活的数据存储格式,广泛应用于科研、工程等领域,支持大数据存储和复杂的多维数组操作。为了在Java中...

    java 基础入门学习教程

    ### Java基础入门学习教程知识点概览 #### 第1章:Java语言概述 ##### 1.1 Java语言的产生 - **起源**:Java语言由Sun Microsystems公司于1995年发布,最初由James Gosling领导开发。 - **背景**:Java的设计目标...

    JAVA_API1.6文档(中文)

    java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java....

    java实战讲解-基础

    Java实战讲解 - 基础 在编程世界中,Java是一种广泛应用的面向对象的编程语言,具有丰富的类库和强大的功能。本篇将探讨Java实战中的基础知识点,特别是字符串处理和占位替换技术,这对于日常编码工作至关重要。 ...

Global site tag (gtag.js) - Google Analytics