忽略所有转义字符和代码JAVA

时间:2013-04-14 09:07:29

标签: java ansi-escape

情况:

  • 我有一个像这样创建的字符串

    \033[32m\033[44mP"+characterID+"\033[0m"
    
  • 当字符串打印到控制台时,它打印出P + characterID 像绿色一样

问题:

  • 我需要使用string P + characterID
  • 创建标签
  • 但是放置的文字是[32m[44mP"+characterID+"[0m

现在:

  • 鉴于我有几个不同颜色的字符串,正则表达式和 替换似乎并不适用于所有人。
  • 无论如何,我可以忽略逃生码和颜色 创建文本?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您正在谈论Swing的JLabel或AWT - 您不能像在控制台中那样使用ANSI转义码。相反,您必须为该JLabel设置前景色或背景色。像这样:

JLabel label = new JLabel("P" + characterID);
label.setColor(Color.GREEN);

编辑:如果您已经有“编码”字符串,那么您应该想出一个只找到“真实”数据并忽略转义码的正则表达式。 假设您只有PMT前缀且characterID是十进制数,正则表达式应该是这样的:

String realData = "\\033[32m\\033[44mP111\\033[0m".replace("[^PMT]\\d+", "");

除了你需要的数据之外,这应该删除所有内容。