Fill in placeholders in an HTML file using Java-ThrowExceptions

Exception or error:

I got an HTML file that looks like this:

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

And what I got in my Java file is that:

String name = "John";

My question is:

  1. How do that fill John into the [Name]% in Java?
  2. After doing so, how do I convert it to a base64-encoded string in Java?

Thank you for your help!

How to solve:

You are using a lot of characters that Java’s regular-expression processor likes to haggle with. I would think that if you have programmed Java before for text-processing, then the String.replace(String, String); method would accomplish what you are attempting to do.

There are three String replace methods. Two of them, though, require regular-expressions. Regular-expressions would expect you to “escape” the brackets that you have typed.

Here is the text, copied from Oracle/Sun’s Java documentation for: java.lang.String

String    replace(CharSequence target, CharSequence replacement)

Replaces each substring of this string that matches the literal target
sequence with the specified literal replacement sequence.

String    replaceAll(String regex, String replacement)

Replaces each substring of this string that matches the given regular
expression with the given replacement.

String    replaceFirst(String regex, String replacement)

Replaces the first substring of this string that matches the given
regular expression with the given replacement.

Just so you are aware – the two that say “regex” in the parameter-list would expect the regex String to follow this format for pattern-matching purposes:

// 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");

These “back-slashes from hell” are required because the Regular Expressions Processor wants you to escape the ‘[‘ and the ‘]’ because they are key-words (reserved/special characters) to the processor’s system. Please review Regular Expressions in the Java 7/8/9 documentation to understand how String.replaceFirst and String.replaceAll work vis-a-vis the regex variable. Alternatively, if you use String.replace, all Java would expect is a direct character match, specifically:

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

Here is a link to Sun/Oracle’s page on java.util.regex.Pattern:
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

NOTE: Answer below is copied Google’s Answer about base64 Encoding. I personally do not quite understand your question. Let me know if you are talking about UTF-8? UniCode? What do you mean by a “Base64 encoded String”?

What is the use of base64 encoding in Java? Encodes the specified byte array into a String using the Base64 encoding scheme. Returns an
encoder instance that encodes equivalently to this one, but without
adding any padding character at the end of the encoded byte data.
Wraps an output stream for encoding byte data using the Base64
encoding scheme.

What is base64 encoding in Java?
Base64 is a binary-to-text encoding scheme that represents binary data in a printable ASCII string format by translating it into a radix-64 representation. Each Base64 digit represents exactly 6 bits of binary data.Dec 6, 2017

Here is a link to Sun’s Page on the issue:
https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html

Leave a Reply

Your email address will not be published. Required fields are marked *