java - 子字符串不起作用

标签 java string

This is my previous question

在我上面的问题的答案中,return id.substring(0, lastDot - 1);在这一行lastDot遇到了问题。

如果我的 id 为 1.1,则上行 lastDot 值为 1 子字符串将变为 ""

如何避免这个问题。

private String getParentId(String id) {
    int lastDot = id.lastIndexOf(".");
    if (lastDot == -1) {
        return null;
    }
    return id.substring(0, lastDot - 1);
}

最佳答案

检查java文档:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html

第二个参数是从第一个参数开始的字符串长度,因此如果始终从索引 0 开始,则不需要减 1

return id.substring(0, lastDot);

更通用的方法是始终减去第一个参数

  int offset = 0;
return id.substring(offset, lastDot-offset);

关于java - 子字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650842/

相关文章:

Java 应用程序在运行我的代码后不会关闭

java - 在liferay中上传带有元数据的文档

java - 如何在 Java 中比较字符串?

html - ruby rails : how to render a string as HTML?

python - 删除字符串中的重复 block

java - 如何创建具有关联值(如 Swift 枚举)的 Java 枚举?

java - 得到一个 IllegalBlockSizeException : Data must not be longer than 256 bytes when using rsa

Java,oracle数据库更新时的触发函数

c++ - 最长公共(public)子序列错误打印

java - Java中如何从一个字符串中获取多个变量集