2011-06-28 5 views
0

入力としてテキストを入力するJavaプログラムを作成していて、JavaFXコード(文字列リテラル)を生成する必要があります。例えば:Java - テキストをJavaFXコードにエスケープする

入力には、以下のテキストです。

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

し、得られJavaFXのコードは次のとおりです。

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

はどのネイティブ方法はあります(たとえば、JavaFX SDKを使用して)これを実現する?
そうでなければ、誰かがJavaFXで完全なエスケープシーケンスリストを教えてくれますか?

答えて

0

JavaFX specificationによると、二重引用符を使用するときは、バックスラッシュでエスケープする必要が唯一の文字は次のとおりです。

  • "
  • {
  • }
  • \

あなたが探しているものを実行する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(); 
} 
関連する問題