gpt4 book ai didi

java - 在Java中手动修剪字符串(不使用String.trim())

转载 作者:行者123 更新时间:2023-12-01 21:09:11 25 4
gpt4 key购买 nike

我正在考虑在不使用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 的子字符串。不需要sbaux:

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(),您需要检查所有空白字符,而不仅仅是 ' '

关于java - 在Java中手动修剪字符串(不使用String.trim()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com