从字符串中提取char

时间:2015-12-14 17:05:39

标签: java android

我需要从预设字符串中提取字符。我知道方法string.charAt(),我使用它但它崩溃了我的程序。我使用的上下文如下:

private String values = "0123456789ABCDEFG";    

//Converts a 10 base number to a q base
private String t2q(String number, String base) {

    String a = Double.toString((int)(Double.parseDouble(number) / Double.parseDouble(base)));
    String b = Double.toString((int)(Double.parseDouble(number) % Double.parseDouble(base)));
    StringBuilder converted = new StringBuilder(a + b);
    if (!check_base(converted.toString(), base)) {
        return t2q(a, base) + values.charAt(Integer.parseInt(b));
    }
    char ab = values.charAt(Integer.parseInt(a));
    char ba = values.charAt(Integer.parseInt(b));
    return "" + ab + ba;
}

一开始我认为我的程序崩溃是因为a采用Double格式,例如1.0所以我使用的函数转换1.0 1但没有,它仍然崩溃。我也尝试使用Character代替char,但它没有任何区别。 对于示例number = "11011"base = 16,异常错误为“java.lang.NumberFormatException:Invalid int:”1.0“”,因此11011}中的16为{{1} }}

1 个答案:

答案 0 :(得分:0)

您无法使用Integer.parseInt()解析表示Double的String。

这不起作用:

Integer.parseInt("3.0");

这将有效:

Integer.parseInt("3");

请改用:

new Double("3.0").intValue()

但请考虑以下行为:

new Double("2.5").intValue()将返回2.