简体   繁体   English

java - 将文本转义为 JavaFX 代码

[英]java - Escape text into JavaFX code

I'm making a Java program that takes some text as input,我正在制作一个 Java 程序,它需要一些文本作为输入,
and has to produce the equivalent JavaFX code (a String literal).并且必须生成等效的JavaFX代码(字符串文字)。 For instance:例如:

The input is the following text:输入是以下文本:

 Hello World: This.你好世界:这个。 \ is a backslash: And this. \ 是一个反斜杠:这个。 {} are brackets. {} 是括号。

And the resulting JavaFX code is:生成的 JavaFX 代码为:

 "Hello World: This. \\ is a backslash:\nAnd this. \{\} are brackets."

Is there any native way (for example, using JavaFX SDKs) to achieve this?是否有任何本机方式(例如,使用 JavaFX SDK)来实现这一点?
If not, can someone give me the complete escaped sequences list in JavaFX?如果没有,有人可以给我 JavaFX 中的完整转义序列列表吗?

According to the JavaFX specification , the only characters that you have to escape with a backslash when using double quotation marks are:根据JavaFX 规范,使用双引号时唯一需要用反斜杠转义的字符是:

  • "
  • {
  • }
  • \

Here's a Java method that should do what you're looking for:这是一个 Java 方法,应该可以满足您的需求:

public String escapeInput(String[] input) {
    String[] characters = {"\"", "\\", "{", "}"};
    StringBuilder sb = new StringBuilder();
    sb.append("\"");
    for (String line : input) {
        for (String test : characters) {
            line = line.replace(test, "\\" + test);
        }
        sb.append(line);
        sb.append("\n");
    }
    sb.append("\"");
    return sb.toString();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM