繁体   English   中英

如何从String中删除一些字符

[英]How to remove some characters from a String

我以这种格式得到一个日期:

2011-05-23 6:05:00

我怎样才能从这个字符串中获得2011-05-23?

可以只取第一个空格的索引并使用substring

int firstSpace = text.indexOf(' ');
if (firstSpace != -1)
{
    String truncated = text.substring(0, firstSpace);
    // Use the truncated version
}

如果没有任何空格,你需要弄清楚你想做什么。

但是,如果它的意思是在一个特定格式的有效日期/时间,你知道的格式,我会分析它格式,然后只使用日期分量。 Joda Time可以很容易地只使用日期部分 - 以及通常更好的API。

编辑:如果你的意思是你已经有了一个Date对象而你正试图以特定的方式对它进行格式化,那么SimpleDateFormat是你在Java API中的朋友 - 但是我再次推荐使用Joda Time及其DateTimeFormatter类:

DateTimeFormatter formatter = ISODateTimeFormat.date();
String text = formatter.print(date);

使用SimpleDateFormat

parser = new SimpleDateFormat("yyyy-MM-dd k:m:s", locale);
Date date;

try {
  date = (Date)parser.parse("2011-05-23 6:05:00");
} catch (ParseException e) {
}

formatter = new SimpleDateFormat("yyyy-MM-dd");
s = formatter.format(date);

也:

标准方式是使用SimpleDateFormat

您也可以使用String操作完成它,如下所示

String result = str.substring(0,str.indexOf(" "));

您可以使用 -

String arg="2011-05-23 6:05:00";
String str=arg.substring(0,arg.indexOf(" ")); 

这是一种无效但蛮力的方法

String s = "2011-05-23 6:05:00";
String t = s.substring(0,s.length-7);

或者无论如何应该是这样

str = "2011-05-23 6:05:00"
str = str.substring(0,str.indexOf(" "));

最简单的方法:

String str =“2011-05-23 6:05:00”; str = str.subString(0,10);

很多答案,但到目前为止还没有人使用正则表达式,所以我只需要用regexp发布答案。

String date = "2011-05-23 6:05:00";
System.out.println(date.replaceFirst("\\s.*", ""));

干得好:

import java.*;
import java.util.*;
import java.text.*;

public class StringApp {
    public static void main(String[] args)
    {
        String oldDate = "2011-05-23 6:05:00";
        String dateFormat = "yyyy-MM-dd";
        try {
            SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
            Calendar cl = Calendar.getInstance();
            cl.setTime(sdf.parse(oldDate));
            String newDate = sdf.format(cl.getTime());
            System.out.println(newDate);
        } 
        catch (ParseException ex) { 
        }
    }
}

另一个使用正则表达式的答案。

String dateTime = "2011-05-23 6:05:00";
String date = dateTime.split(" ")[0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM