java - 将文本转义为 JavaFX 代码

发布于 2024-11-17 16:35:28 字数 415 浏览 1 评论 0原文

我正在制作一个 Java 程序,它接受一些文本作为输入,
并且必须生成等效的 JavaFX 代码(字符串文字)。例如:

输入的是以下文本:

世界你好!这: \ 是一个反斜杠。
而这个:{} 是括号。

生成的 JavaFX 代码是:

“Hello World!这:\\ 是反斜杠。\n这:\{\} 是括号。”

是否有任何本机方式(例如,使用 JavaFX SDK)来实现此目的?
如果没有,有人能给我 JavaFX 中完整的转义序列列表吗?

I'm making a Java program that takes some text as input,
and has to produce the equivalent JavaFX code (a String literal). For instance:

The input is the following text:

Hello World! This: \ is a backslash.
And this: {} are brackets.

And the resulting JavaFX code is:

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

Is there any native way (for example, using JavaFX SDKs) to achieve this?
If not, can someone give me the complete escaped sequences list in JavaFX?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只有一腔孤勇 2024-11-24 16:35:28

根据 JavaFX 规范,使用双引号时必须使用反斜杠转义的唯一字符标记为:

  • "
  • {
  • }
  • \

这是一个 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();
}

According to the JavaFX specification, the only characters that you have to escape with a backslash when using double quotation marks are:

  • "
  • {
  • }
  • \

Here's a Java method that should do what you're looking for:

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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文