[英]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
即可確定尾隨空白在哪里開始並返回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()
,您需要檢查所有空白字符,而不僅僅是' '
。
要刪除空格,請使用myString.replace(“”,“”);
感謝和問候,Dilip D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.