Java 从字符串中删除最后一个字符

Java 从字符串中删除最后一个字符,java,android,string,substring,Java,Android,String,Substring,我从API调用中收到一个长字符串日期,它们作为 活动名称2017-03-23T10:00.000+01:00 我该如何修剪它,以便我可以从我得到的所有事件中删除角色,并且只留下这些角色 活动名称2017-03-23 10:00 我如何修剪它,以便我可以删除所有的字符 我回来后只剩下的事情 活动名称2017-03-23 10:00 试试这个: 结果是-->事件名称2017-03-23 10:00 强>边注——正如你可以看到的,使用字符串在构建一个新对象方面有点低效,你可以考虑查看 。但是,如果你不

我从API调用中收到一个长字符串日期,它们作为

活动名称2017-03-23T10:00.000+01:00

我该如何修剪它,以便我可以从我得到的所有事件中删除角色,并且只留下这些角色

活动名称2017-03-23 10:00

我如何修剪它,以便我可以删除所有的字符 我回来后只剩下的事情

活动名称2017-03-23 10:00

试试这个:

结果是-->
事件名称2017-03-23 10:00

强>边注——正如你可以看到的,使用<代码>字符串在构建一个新对象方面有点低效,你可以考虑查看<强> <强>。但是,如果你不再做手术,那么我已经做了,那应该没问题

编辑

替代解决方案

注意-这与上面的解决方案类似,但将“T”保留在当前位置。然后你可以继续做你想用它做的事情

StringBuilder sb = new StringBuilder("Event Name 2017-03-23T10:00.000+01:00");
sb.setLength(27);
System.out.println(sb.toString());

用最后一个字符更改
x

组合
子字符串(开始、结束)
lastIndexOf
方法。将其解析为
OffsetDateTime
,然后使用您选择的格式设置程序输出。您可以尝试
str.split(\\”[0]
@Pshemo您能举个例子吗?这会删除日期和时间之间的T,但也会删除整个字符串中大写字母T的所有实例。字符串末尾的日期保持不变unchanged@smithcommajohn您提供的示例只声明了一个“t”,因此这就是我的解决方案的基础。所以你只想删除日期和时间之间的T?没有别的了?。无论如何,我将提供一个替代解决方案。@smithcommajohn您的示例没有任何其他t。请更新您的问题以显示正确的输入。解释可以更改的内容和修复的内容。此解决方案可行,但返回的字符串具有这些事件的多个实例,我需要显示每个实例,这将只返回前26个字符。我编辑了答案,将长度延长到10:00。我对字符串进行了错误计数
String str = "Event Name 2017-03-23T10:00.000+01:00";
System.out.println(str.split("\\.")[0]);
StringBuilder sb = new StringBuilder("Event Name 2017-03-23T10:00.000+01:00");
sb.setLength(27);
System.out.println(sb.toString());
     if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == 'x') {
            str = str.substring(0, str.length() - 1);
     }