Java 检测字符串中的IRC颜色
如何在字符串中进行检测 以下是我尝试过的:Java 检测字符串中的IRC颜色,java,unicode,utf-8,irc,Java,Unicode,Utf 8,Irc,如何在字符串中进行检测 以下是我尝试过的: int length = message.length(); ArrayList<Object> buffer = new ArrayList<Object>(); for (int i = 0; i < length; i++) { char ch = message.charAt(i); if (Character.isDefined(ch) && !Character.isLetter(ch)
int length = message.length();
ArrayList<Object> buffer = new ArrayList<Object>();
for (int i = 0; i < length; i++) {
char ch = message.charAt(i);
if (Character.isDefined(ch) && !Character.isLetter(ch)) {
Methods.log("val " + (int) ch);//Attempt logging the irc color value
} else {
buffer.add(ch);
}
}
int length=message.length();
ArrayList缓冲区=新的ArrayList();
for(int i=0;i
然而,这失败了。我正在为我的11年级编程课程编写一个IRC客户端,我认为颜色是一个很酷的功能。IRC颜色很复杂,不是所有客户端都以相同的方式解释规范,但您正在寻找^C
“控制字符”(0x03
)后面是描述要使用的特定前景和背景色的数字
一旦你在文本流中找到了它们,你就需要弄清楚如何更改文本控件上的文本颜色,并记住在下一条消息输出之前将文本设置回正常状态。已修复
int length = message.length();
LinkedList<Object> buffer = new LinkedList<Object>();
for (int i = 0; i < length; i++) {
char ch = message.charAt(i);
if ((byte) ch == 3) {
String color = "";
i++;
while (i < length) {//loop
char d = message.charAt(i);
if ((d >= '0') && (d <= '9')) {
if (color.length() == 2) {
i--;
break;//break b4 stackoverflow!!!
}
color += d;
i++;
} else {
i--;
break;//break b4 stackoverflow!!!
}
}
for (IRCModifier m : IRCModifier.values()) {
if (m.getCode().equalsIgnoreCase(color)
|| m.getCode().replace("0", "")
.equalsIgnoreCase(color)) {
buffer.add(m.getEffect());
break;
}
}
} else {
buffer.add(ch);
}
}
int length=message.length();
LinkedList缓冲区=新建LinkedList();
for(int i=0;i 如果((d>='0')&&(d Matt,你需要提供更多的信息。最好的方法是扩展你提供的代码,包括方法的名称、它接受的参数和方法返回的数据。这将为你想要实现的目标提供更好的定义。你还应该从你收到的错误,你的期望是如何没有得到满足。不幸的是,IRC颜色代码不是ANSI颜色代码。它们是Khaled为mIRC创建的一个令人恼火的模棱两可的自定义代码:@Dashwuff:哦,伙计,你说得对。我完全忘了。谢谢你的修复。