String text= "2011-11-19T00:00:00.000-05:00";
我有上述字符串。如何删除特定位置的字符串内的冒号
上述日期是不是在RFC格式,我想在05:00 删除字符串中的冒号所以taht实际字符串像
String text= "2011-11-19T00:00:00.000-0500";
String text= "2011-11-19T00:00:00.000-05:00";
我有上述字符串。如何删除特定位置的字符串内的冒号
上述日期是不是在RFC格式,我想在05:00 删除字符串中的冒号所以taht实际字符串像
String text= "2011-11-19T00:00:00.000-0500";
因为它在你的字符串结肠的最后出现,你可以做这样的事情:
String newText = text.substring(0, text.lastIndexOf(":")) + text.substring(text.lastIndexOf(":") + 1);
这将创建一个没有冒号最后出现一个新的字符串。
的方法之一是使用字符串API得到该字符的最后一个索引':'
int lastIndexOf(int ch)
一旦你有了,你可以删除该索引处的元素。
例如,可能有更简单的方法通过正则表达式将其删除。这只是一种做法。
那么在这种情况下,您可以使用String.lastIndexOf(int)并获取字符串中最后一个“:”的位置。
您还可以使用正则表达式与先行和回顾后用一个空字符串替换冒号。这样你就可以确定删除了正确的冒号。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
...
String text= "2011-11-19T00:00:00.000-05:00";
Pattern p = Pattern.compile("(?<=\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}-\\d{2}):(?=\\d{2})");
Matcher m = p.matcher(text);
String newtext = m.replaceAll("");
...
如果您要更改大块文本中的日期格式,这可能是一个不错的选择。
正则表达式对于这样的操作是矫枉过正的。学习基本的字符串操作是一项重要技能,通常会导致更高效的代码。
我的例子比最高评分的答案更清洁(甚至更有效,但它是一种边际收益)。
int remove = text.lastIndexOf(':');
text = text.substring(0,remove) + text.substring(remove+1);
您可以使用正则表达式或日期的功能。日期函数将是一个明智的选择。 – lc2817