文
章
目
录
章
目
录
1.使用String.substring()
这是最直接的方法。substring()方法返回开始和结束索引之间的子字符串。
请注意,此方法不会检查空字符串。它也不会检查字符串的长度,因此如果我们传递一个空字符串,可能会引发IndexOutOfBoundsException(索引越界异常)。最好编写我们自己的方法来处理这两种情况。请随意自定义该方法并处理更多情况,比如非可打印字符。
public static String removeLastChar(String s) {
return (s == null || s.length() == 0)
? null
: (s.substring(0, s.length() - 1));
}
现在我们可以将此方法用于任何类型的String。
newStr = removeLastChar(null); //returns null
newStr = removeLastChar(""); //returns null
newStr = removeLastChar("a"); //returns "" empty string
newStr = removeLastChar("abcd"); //returns "abc"
2. 使用StringUtils.chop()
StringUtils类是Apache Commons Lang库的一部分,因此如果尚未添加,请添加它。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
StringUtils.chop ()返回一个新字符串,其最后一个字符已被删除。这种技术是不安全的,并且也可以处理空字符串。
另请注意,如果字符串以 结尾\r\n
,则会删除它们。
newStr = StringUtils.chop(null); //returns null
newStr = StringUtils.chop(""); //returns "" empty string
newStr = StringUtils.chop("a"); //returns "" empty string
newStr = StringUtils.chop("abcd"); //returns "abc"
3. 如果 Char 值匹配则删除最后一个字符
在某些情况下,我们只想在最后一个字符匹配或不匹配任何特定字符时删除它。我们可以使用 Guava 的CharMatcher类来实现它。
如果还没有将Guava包含到项目中。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
如果字符串的最后一个字符与给定条件匹配,请按如下方式使用CharMatcher类来删除它。
String string = "abcdE";
String newStr = CharMatcher.is('E').trimTrailingFrom(s);
我们也可以使用CharMatcher来删除破坏的空格。
String newStr = CharMatcher.breakingWhitespace().trimTrailingFrom(s);
4.结论
在这个简短的 Java 教程中,我们学习了一些从字符串中删除最后一个字符的技术,可以使用索引,也可以仅使用匹配条件。我们看到了这些方法如何处理null和空值。