【发布时间】:2017-03-04 08:08:30
【问题描述】:
我正在尝试创建一个遗传算法,我得到了这个代码:
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
【问题讨论】:
-
在询问有关代码的问题时,为您使用的语言添加标签总是很有帮助的。您几乎可以替换您使用的任何一个,因为它们都不能明确您的问题。
-
是的,抱歉,忘记了
标签: java binary hex long-integer