在Java

时间:2018-10-03 19:39:55

标签: java html

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

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

我在java文件中得到的是:

String name = "John";

我的问题是:

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

谢谢您的帮助!

1 个答案:

答案 0 :(得分: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”会期望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相对于regex变量的工作方式。另外,如果您使用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

注意:以下答案是Google关于base64编码的答案的副本。我个人不太理解您的问题。让我知道您是否在谈论UTF-8? UniCode? “ Base64编码的字符串”是什么意思?

  

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

     

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

这里是有关此问题的Sun页面的链接: https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html