String (final char[] chars) { final StringBuilder buffer = new StringBuilder(); for (int i = 0; i < chars.length; i++) { char chr = chars[i]; final char decodedChar; if (chr == Packet.ourSpecialSymbol) { i++; chr = chars[i]; if (chr != Packet.ourSpecialSymbol) { final StringBuilder codeBuffer = new StringBuilder(Packet.CODE_LENGTH); codeBuffer.append(chr); for (int j = 1; j < Packet.CODE_LENGTH; j++) { codeBuffer.append(chars[i + j]); } i += Packet.CODE_LENGTH - 1; decodedChar = (char)Integer.parseInt(codeBuffer.toString()); } else decodedChar = chr; } else decodedChar = chr; buffer.append(decodedChar); } return buffer.toString(); }