我知道这个问题非常愚蠢,但在一次采访中,我被告知要实现trim()方法,而不使用String类除了substring()方法之外的任何方法.
我通过使用toCharArray()然后识别String的第一个和最后一个有效字符来解决这个问题.但被告知不要使用toCharArray()方法.
有人可以提出一些方法来做到这一点.
允许使用Objects类的Overriden方法,如equals()和hashCode().
String untrimmed = " some string ";
String trimmed = "";
String innerSpaces = "";
boolean wordBoundary = true;
try {
for (int i = 0; ; i++) {
String substr = untrimmed.substring(i, i + 1);
if (!substr.equals(" ") && !substr.equals("\t") &&
!substr.equals("\n") && !substr.equals("\r")) {
trimmed += innerSpaces + substr;
wordBoundary = false;
innerSpaces = "";
}
else if (!wordBoundary) {
innerSpaces += substr;
}
}
}
catch (IndexOutOfBoundsException e) { }
System.out.println(trimmed);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1699 次 |
| 最近记录: |