是否可以将字符串“1L”转换为相应的 Long 值?

Is it possible to convert the String "1L" to the corresponding Long value?

我正在按照以下说明解析配置文件:

public String getProperty(String key) throws IOException {
  Properties prop = new Properties();
  String path = "path/to/file/file.properties";
  InputStream stream = this.class.getResourceAsStream(path);
  prop.load(stream);
  return prop.getProperty(key);

返回值,即 String,稍后会从调用方法转换为预期类型。如何将字符串 1L 转换为 Long 类型?
我试过了:

Long.valueOf(this.getProperty(key));

但它提高了 NumberFormatException。有办法吗?

Long.parseLongLong.valueOf都不能直接解析1L

解决方法:您可以实现一个简单的 stripTrailingL 函数来删除尾随 L,然后将其解析为 Long。

String str = "1234L";
Long yourLong = Long.parseLong(stripTrailingL(str));

public String stripTrailingL(String str) {
    return str.endsWith("L") ? str.substring(0, str.length() - 1) : str;
}