String.trim()
を使用せずにこれを行うという考えで遊んでいました。先頭と末尾の空白をトリムするメソッドを作成しました。以下にその例を示します。Javaで文字列を手動でトリミングする(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
を使わなくてもやり遂げることができると思っていますが、私はそのための道を見出すことができませんでした。
がString.trimのソースコードを見てください()。そこでは非常に効率的な実装です。 –
[これはJDKに実装されている方法](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/lang/String.java#String.trim) %28%29)。 – 4castle
このトピックはhttp://codereview.stackexchange.com/ – Andreas