在java中的html文件中填充占位符

问题描述 投票:0回答:1

我有一个看起来像这样的html文件:

<body>
    <p>Hello! <b>[NAME]%</b></p>
</body>

我在java文件中得到的是:

String name = "John";

我的问题是:

  1. 如何将John填入java中的[Name]%?
  2. 这样做后,如何将其转换为java中的base64编码字符串?

谢谢您的帮助!

java html
1个回答
0
投票

你正在使用Java的正则表达式处理器喜欢讨厌的很多字符。我想如果你之前已经编写过Java进行文本处理,那么String.replace(String,String);方法将完成你试图做的事情。

有三种String替换方法。但是其中两个需要正则表达式。正则表达式会期望您“转义”您键入的括号。

以下是从Oracle / Sun的Java文档中复制的文本:java.lang.String

String    replace(CharSequence target, CharSequence replacement)

将与该文字目标序列匹配的此字符串的每个子字符串替换为指定的文字替换序列。

String    replaceAll(String regex, String replacement)

将给定替换的给定正则表达式匹配的此字符串的每个子字符串替换。

String    replaceFirst(String regex, String replacement)

将给定替换的给定正则表达式匹配的此字符串的第一个子字符串替换。

只是你知道 - 在参数列表中说“regex”的两个人会期望正则表达式字符串遵循这种格式用于模式匹配目的:

// Regular-Expression Programming with java.lang.String - Several "Escaped" Characters!
// ALSO NOTE: Back-slashes need to be twice-escaped!

String replacePattern = "\\[NAME\\]%";
yourText.replaceFirst(replacePattern, "John");

这些“来自地狱的反斜杠”是必需的,因为正则表达式处理器希望您转义'['和']',因为它们是处理器系统的关键字(保留/特殊字符)。请查看Java 7/8/9文档中的正则表达式,以了解String.replaceFirstString.replaceAll如何与正则表达式变量相比较。或者,如果你使用String.replace,所有Java都会期望是一个直接的字符匹配,具体来说:

yourText = yourText.replace("[NAME]%", "John");

以下是关于java.util.regex.Pattern上的Sun / Oracle页面的链接:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

注意:下面的答案是复制谷歌关于base64编码的答案。我个人不太明白你的问题。如果你在谈论UTF-8,请告诉我? UNICODE?你是什​​么意思“Base64编码字符串”?

在Java中使用base64编码有什么用?使用Base64编码方案将指定的字节数组编码为String。返回编码器实例,该编码器实例与此实例等效编码,但不在编码字节数据的末尾添加任何填充字符。使用Base64编码方案包装用于编码字节数据的输出流。

什么是Java中的base64编码? Base64是一种二进制到文本编码方案,通过将二进制数据转换为基数-64表示,以可打印的ASCII字符串格式表示二进制数据。每个Base64数字代表6位二进制数据。2017年6月6日

以下是关于该问题的Sun页面的链接:https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html

© www.soinside.com 2019 - 2024. All rights reserved.