Java 中的 String.trim()
方法用于移除字符串头部和尾部的所有空白字符。这里的“空白字符”是指任何 Unicode 代码点小于或等于 'U+0020'
(空格字符)的字符。该方法返回一个新的字符串对象,其中所有的头部和尾部空白已被移除。由于 String
在 Java 中是不可变的,因此即使原始字符串没有头部或尾部空白,返回的也是一个新的字符串引用。
以下是一些关于 trim()
方法的重要事项:
- 称
trim()
方法可以移除所有类型的空白字符是不准确的,实际上它只移除那些代码点小于或等于'U+0020'
的字符。 - 如果字符串中没有任何头部或尾部空白,则该方法返回原字符串。
- 如果字符串中有头部或尾部空白,
trim()
方法返回一个子字符串,其中所有头部和尾部空白都被移除,并且返回的新字符串是一个新的对象引用。 - 如果字符串仅由空白字符组成,则返回代表空字符串的
String
对象。
以下是一个简单的代码示例来熟悉 trim()
方法:
public class Codekru {public static void main(String[] args) {String str1 = " codekru ";System.out.println("Before using trim function: " + "====" + str1 + "=====");String str2 = str1.trim();System.out.println("After using trim function: " + "====" + str2 + "=====");}
}
输出将是:
Before using trim function: ==== codekru =====
After using trim function: ====codekru=====
你可以看到,在使用 trim()
方法之前,字符串的头部和尾部存在空白字符,而在之后这些空白字符已经被移除了。
特殊情况:
- 如果字符串包含不同类型的空白字符,例如
'U+00A0'
,trim()
方法将不会移除这种类型的空白字符,因为它们的代码点大于'U+0020'
。
示例代码:
public class Codekru {public static void main(String[] args) {String str1 = "\u2003codekru";System.out.println("Before using trim function: " + "====" + str1 + "=====");String str2 = str1.trim();System.out.println("After using trim function: " + "====" + str2 + "=====");}
}
输出将是:
Before using trim function: ==== codekru=====
After using trim function: ==== codekru=====
可以看到,trim()
方法并没有移除 'U+2003'
这种类型的空白字符。