手动修剪 Java 中的字符串(没有 String.trim())
Manually trimming a string in Java (without String.trim())
我一直在考虑不使用 String.trim()
来做这个的想法。我做了一个修剪前导和尾随空格的方法,如下所示:
public static String removeLeadingAndTrailingSpaces(String s) {
StringBuilder sb = new StringBuilder();
int i = 0;
while (s.charAt(i) == ' ') {
i++;
}
for (; i < s.length(); i++) {
sb.append(s.charAt(i));
}
// aux is the string with only leading spaces removed
String aux = sb.toString();
int j = aux.length() - 1;
while (aux.charAt(j) == ' ') {
j--;
}
// now both leading and trailing spaces have been removed
String result = aux.substring(0, j + 1);
return result;
}
我已经测试过了,它 100% 有效。但是,我不认为这是最有效或最实用的实施方式。我还能怎么做呢?我觉得不使用额外的变量 aux
和 j
也可以做到,但我想不出办法。
只需从末尾检查 s
以确定尾随白色 space 的起始位置和 return s
的子字符串。不需要 sb
或 aux
:
public static String removeLeadingAndTrailingSpaces(String s) {
int end = s.length();
int i = 0;
while (i < end && s.charAt(i) == ' ') {
i++;
}
while (end > i && s.charAt(end - 1) == ' ') {
end--;
}
return end> i ? s.substring(i, end) : "";
}
为了更接近 trim()
,您需要检查所有白色 space 字符,而不仅仅是 ' '
.
要删除空格,请使用
myString.replace(" ","");
感谢和问候,
迪利普 D
我一直在考虑不使用 String.trim()
来做这个的想法。我做了一个修剪前导和尾随空格的方法,如下所示:
public static String removeLeadingAndTrailingSpaces(String s) {
StringBuilder sb = new StringBuilder();
int i = 0;
while (s.charAt(i) == ' ') {
i++;
}
for (; i < s.length(); i++) {
sb.append(s.charAt(i));
}
// aux is the string with only leading spaces removed
String aux = sb.toString();
int j = aux.length() - 1;
while (aux.charAt(j) == ' ') {
j--;
}
// now both leading and trailing spaces have been removed
String result = aux.substring(0, j + 1);
return result;
}
我已经测试过了,它 100% 有效。但是,我不认为这是最有效或最实用的实施方式。我还能怎么做呢?我觉得不使用额外的变量 aux
和 j
也可以做到,但我想不出办法。
只需从末尾检查 s
以确定尾随白色 space 的起始位置和 return s
的子字符串。不需要 sb
或 aux
:
public static String removeLeadingAndTrailingSpaces(String s) {
int end = s.length();
int i = 0;
while (i < end && s.charAt(i) == ' ') {
i++;
}
while (end > i && s.charAt(end - 1) == ' ') {
end--;
}
return end> i ? s.substring(i, end) : "";
}
为了更接近 trim()
,您需要检查所有白色 space 字符,而不仅仅是 ' '
.
要删除空格,请使用 myString.replace(" ","");
感谢和问候, 迪利普 D