public static BencodeString getString(String source, int index) { BencodeString b = null; String lengthStr = StringUtils.EMPTY; int length = 0; try { char c = source.charAt(index); if(c >= '0' && c <= '9') { source = source.substring(index); lengthStr = source.split(":")[0]; length = Integer.parseInt(lengthStr); b = new BencodeString(source.substring(lengthStr.length() + 1, lengthStr.length() + 1 + length)); } } catch (Exception e) { System.out.println("@@@@@@@@@@@:"+source.length()); System.out.println("@@@@@@@@@@@:"+lengthStr.length() + 1); System.out.println("@@@@@@@@@@@:"+lengthStr.length() + 1 + length); throw new RuntimeException(e); } return b; }