获取子字符串而不超过字符串长度的最有效方法

时间:2015-05-06 20:25:29

标签: java substring

我目前正在尝试使用此代码将字符串转换为数字:

public static int getDigit(String whole, int sub) {
    int d = Integer.parseInt(whole.substring(sub, sub+1));
    print(Integer.toString(d));

    return d;
}

但是当我试图得到最后一个数字时我遇到了一个错误,我知道原因但是有一种方法可以克服这个问题,就像一个算法(有效的方法)执行这个而不是我的例子:

public static int getDigit(String whole, int sub) {
    int d = 0;

    if (sub < whole.length())
        d = Integer.parseInt(whole.substring(sub, sub+1));
    else
        d = Integer.parseInt(whole.substring(sub));
    print(Integer.toString(d));

    return d;
}

注意:请忽略代码中的任何错误,因为我没有测试第二个示例。第一个例子显然有错误。

1 个答案:

答案 0 :(得分:3)

另一种选择(假设您希望单个字符作为&#39;数字&#39;)将处理传递索引处的字符,方法是拉char并将其转换为int

可以使用Character class中的getNumericValue(char ch)方法完成此操作。

int d = Character.getNumericValue(whole.charAt(sub));