java - 如何删除字符串中一个字符后的所有字符?

标签 java string

我有一个包含日期的字符串,例如“01-01-2012”,然后是一个空格,然后是时间“01:01:01”。完整的字符串是:“01-01-2012 01:01:01”

我只想从此字符串中提取日期,所以最后我会得到“01-01-2012”,但不知道该怎么做。

最佳答案

四个选项(添加最后两个以使这个答案包括其他人给出的选项):

  • 将整个事情解析为日期/时间,然后只取日期部分(Joda Time 或 SimpleDateFormat)
  • 使用 indexOf 查找第一个空格并使用 substring 获取前导子字符串:

    int spaceIndex = text.indexOf(" ");
    if (spaceIndex != -1)
    {
        text = text.substring(0, spaceIndex);
    }
    
  • 相信它在指定格式中是有效的,并且第一个空格总是在索引 10 处:

    text = text.substring(0, 10);
    
  • 用空格分割字符串,然后取第一个结果(对我来说似乎不必要地低效,但它会工作...)

    text = text.split(" ")[0];
    

如果也没有空格,您应该考虑您希望发生什么。这是否意味着数据一开始就无效?你应该继续整个字符串吗?这将取决于您的情况。

就我个人而言,我可能会选择第一个选项 - 你真的想解析“01-01-2012 wibble-wobble 坏数据”,就好像它是一个有效的日期/时间一样?

关于java - 如何删除字符串中一个字符后的所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276493/

相关文章:

java - 哪个 Spring 注解与来自 MQTTCallBack 的消息一起使用

java - Jackson ObjectMapper - 未映射 "_"的属性

python - 将字典的字符串表示形式转换为真正的字典

php - 如何在 PHP 中修剪 heredoc(长字符串)中的每一行

java - Select 语句上的 Hibernate SQL 语法异常

java - Quartz JobExecutionContext setResult 与 put

java - 具有类型混淆的自定义 Java 迭代器

java - 使用 Talend 的 FTP,只获取最新的文件?

Java 空字符串等于 NULL

python - 正则表达式:允许逗号分隔的字符串,包括字符和非字符