Я пытаюсь создать генетический алгоритм, и я получил этот код:Java Строка для шестнадцатеричной строки
public Cromosoma() {
this.setRepresentacionBinaria(this.generarAleatoriamenteCromosoma());
}
private String generarAleatoriamenteCromosoma() {
String cromosoma = "";
for (int i = 1; i <= 40; i++) {
cromosoma += ((int) (Math.random() * 10)) % 2;
}
return cromosoma;
}
public String getRepresentacionBinaria() {
return this.representacionBinaria;
}
public String getRepresentacionHexadecimal() {
return Long.toHexString(Long.parseLong(this.getRepresentacionBinaria(), 2));
}
getRepresentacionBinaria() генерирует случайную строку из 40 символов (0 и 1), мне нужно эта строка является шестнадцатеричной строкой (без x), этот код делает это, проблема возникает, когда Long.parseLong() анализирует строку и возвращает шестнадцатеричное число с ведущими нулями (которое мне нужно) и дает мне эту ошибку :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9
При запросе вопроса о коде всегда полезно включать тег для используемого вами языка. Вы можете заменить практически любой из тех, которые вы использовали, поскольку ни один из них не дает ясности вашему вопросу. –
Да, извините, забыл – Ziklepmna