扬州

点击搜索

发布

Java中删除字符串后一个字符扬州江都Java培训学校

区域:
扬州 > 江都
Java中删除字符串后一个字符|扬州江都Java培训学校

删除字符串后一个字符,简单的方法就是使用 substring() 方法进行截取,0 作为起始下标,length() - 1 作为结束下标。

不管怎么样,substring() 方法不是 null 安全的,需要先判空:

  public static String removeLastChar(String s) {
    return (s == null || s.length() == 0)
          ? null
          : (s.substring(0, s.length() - 1));
  }
如果不想在操作之前判空,那么就直接上 Apache 的 Commons Lang 包:
String s = "沉默王二";
StringUtils.substring(s, 0, s.length() - 1);
当然了,如果目的非常明确——就是只删除字符串的后一个字符,还可以使用 StringUtils 类的 chop() 方法:
StringUtils.chop(s);
如果你看过源码的话,你就会发现,它内部其实也是调用了 substring()方法。
public static String chop(final String str) {
  if (str == null) {
    return null;
  }
  final int strLen = str.length();
  if (strLen < 2) {
    return EMPTY;
  }
  final int lastIdx = strLen - 1;
  final String ret = str.substring(0, lastIdx);
  final char last = str.charAt(lastIdx);
  if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
    return ret.substring(0, lastIdx - 1);
  }
  return ret;
}
如果你对正则表达式了解的话,也可以使用 replaceAll() 方法进行替换,把后一个字符 .$ 替换成空字符串就可以了。
s.replaceAll(".$", "")
当然了,replaceAll() 方法也不是 null 安全的,所以要提前判空:

String result= (s == null) ? null : s.replaceAll(".$", "");
如果对 Java 8 的 Lambda 表达式和 Optional 比较熟的话,还可以这样写:

String result1 = Optional.ofNullable(s)
    .map(str -> str.replaceAll(".$", ""))
    .orElse(s);
看起来就显得高大上多了,一看就是有经验的 Java 程序员。

【报名地址】:
扬州市江都区仙女镇工农路15号和业大厦四楼(江都商城往西100米海澜之家楼上电梯直达)
咨询电话:180**121***34719(微信同号)/0514-86733278 戴老师
友情提醒:周一至周日 8:30—20:30 节假日照常报名
查看更多扬州其他教育培训信息

免责声明:此信息系发布者(UID:545890)自行发布,本站是服务平台,仅提供信息存储空间服务,该信息内容的真实性及合法性由该发布者完全负责。

© lieju.com 联系我们