写LeetCode时遇到了用String.trim()的地方,顺带看了一下trim()的源码,发现它的作用不只是删除字符串首位空格那么简单。 源码注释如图:
总结起来共有六条:
1.删除字符串的前置和后置空格;
2.如果String对象表示一个空字符,则返回对这个String对象的引用;
3.如果String对象表示的字符的首和尾字符的编码都大于’\u0020’(英文状态下的空格字符),则返回对这个String对象的引用;(即如果空格前后还有非空格字符则不删除该空格)
4.如果String字符串中没有编码大于’\u0020’的字符,则返回一个表示空字符串的string对象(新创建的);
5.假设 k 是代码大于’\u0020’的字符串中第一个字符的索引,假设 m 是代码大于’’\u0020’的字符串中最后一个字符的索引。返回一个表示该字符串的子字符串,该子字符串以下标 k 处的字符开始,以下标 m 处的字符结束。即 substring(k, m + 1)。
6.如果使用trim()后的字符串长度不等于使用前的长度,就返回一个新String对象给你;如果等于则返回原String对象(即不创建新的字符串对象)。