java - Java中如何从字符数组中获取一定范围的字符?

标签 java arrays character

我正在编写一个应用程序,它将一系列值存储在数组列表对象中。所有值都以字符串形式存储在数组中,其中一个参数是时间戳,前缀为“Timestamp:”,后跟实际的 Unix 时间戳(例如 1556849753564)

我只需要从 Timestamp String 对象中解析 Unix 时间戳。

这是我尝试过的:

public void parseTimestamp() {
    String lastBlockTimeAsString = (String) HashArray.hashArray.get(HashArray.hashArray.size() - 12);
    char[] timeAsCharArray = lastBlockTimeAsString.toCharArray();
    long lastBlockTime = Long.parseLong(String.valueOf(timeAsCharArray[12] + timeAsCharArray[13] ..... etc ));
}

HashArray.hashArray.get() 调用只是从数组列表中提取 Timestamp 对象。 我从数组中提取第 12 个字符,因为这是时间戳的开始。

在Python中我可以做类似的事情:

timeAsCharArray[12]:[24] 

如何在 Java 中比我提出的解决方案更优雅地完成此任务,该解决方案基本上是连接数组中的每个单独字符。任何帮助将不胜感激!

最佳答案

不确定为什么要尝试将字符串转换为字符数组,然后再次连接。正如 DevilsHnd 所指出的,您可以通过删除“Timestamp:”前缀并获取“Unix 时间”来进行拆分 或者你可以替换然后类型转换。请记住,这假设替换后,用户将始终拥有长整型数值

long lastBlockTime = Long.parseLong(lastBlockTimeAsString.replace("Timestamp: ",""));

关于java - Java中如何从字符数组中获取一定范围的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962708/

相关文章:

java - 如何创建可轻松插入现有项目而无需重新编译的 gwt 插件?

r - 将具有 "NULL"值的列转换为数字

Python - 根据字符串中指定的重复字符查找单词

c++ - 如何在 C++ 中有效地将数值重新分配给字符数组

java - 为什么延迟获取不工作 JPA

java - 我们如何检测 main() 线程是否已死亡但所有生成的 thread() 线程都在运行?

将 log4j 1.2.17 更新到 2.13.0 后出现 java.lang.ClassNotFoundException : org. apache.logging.log4j.Logger

php - 如何将数组中的每条数据保存到数据库中

java - 表达式的类型必须是数组类型,但它解析为 int

二维数组的 cudaMalloc 失败,错误代码 11