情况:
我有一个像这样创建的字符串
\033[32m\033[44mP"+characterID+"\033[0m"
在将字符串打印到控制台时,它会打印出
P + characterID
像它应该的绿色
问题:
我需要使用
string P + characterID
创建标签但是放置的文字是
[32m[44mP"+characterID+"[0m
现在怎么办:
鉴于我有几个不同颜色的字符串,正则表达式和
替换似乎并不适合所有人。
无论如何,我可以忽略转义码和颜色
创建文字?
有什么建议么?
最佳答案
如果您在谈论Swing的JLabel或AWT,则不能像在控制台中那样使用ANSI转义码。相反,您必须为该JLabel设置前景色或背景色。像这样:
JLabel label = new JLabel("P" + characterID);
label.setColor(Color.GREEN);
编辑:如果您已经有“已编码”字符串,那么您应该提出一个正则表达式,该正则表达式将只查找“真实”数据而忽略转义码。
假设您只有
P
,M
和T
前缀,并且characterID
是十进制数字,则正则表达式应如下所示:String realData = "\\033[32m\\033[44mP111\\033[0m".replace("[^PMT]\\d+", "");
这将删除您需要的数据以外的所有内容。