java - 在不超过字符串长度的情况下获取子字符串的最有效方法

标签 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;
}

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

最佳答案

另一种方法(假设您希望将单个字符作为“数字”)处理传递的索引处的字符,方法是提取 char 并将其转换为 int

这可以通过 Character class 中的 getNumericValue(char ch) 方法来完成.

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

关于java - 在不超过字符串长度的情况下获取子字符串的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086850/

相关文章:

ios - NSString characterSetWithCharactersInString 返回空字符串

r - 从 r 中位置不一致、重复的字符截断字符串

Java - for循环输出问题

java - ANTLR4 TokenStream,getText方法

java - 使用 vaadin 从数据库获取数据并显示在屏幕上

c - 如何在不使用 <string.h> 的情况下将字符串与子字符串进行比较以将第一个和第二个之间的相等部分转换为 '*'

regex - 为 NLP locutions 编码文本的高效 SQL 语句

string - 如何用随机替换词有效地替换字符串中的词?

java - 最大化内部框架

java - JSONObject 文本必须以 '{' 开头