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 节假日照常报名
删除字符串后一个字符,简单的方法就是使用 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 节假日照常报名