// CHALLENGER: strip.
01. public static String strip02Challenger(String s) {
02. int length = s.length();
03. int start = indexOfNonWhitespaceParts(s, length); // 左空白
04. int end = lastIndexOfNonWhitespaceParts(s, start, length); // 右空白
05. return end < length || 0 < start ? s.substring(start, end) : s;
06. }
// left Strip Parts.
08. private static int indexOfNonWhitespaceParts(String s, int end) { // 左空白
09. int start = 0;
10. while (start < end) {
11. int c = s.codePointAt(start);
12. if (c != SPACE && c != FULL_SPACE && c != TAB &&
13. !Character.isWhitespace(c)) break;
14. start += Character.charCount(c);
15. }
16. return start;
17. }
// right Strip Parts.
19. private static int lastIndexOfNonWhitespaceParts(String s, int start, int end) { // 右空白
20. while (start < end) {
21. int c = s.codePointBefore(end);
22. if (c != SPACE && c != FULL_SPACE && c != TAB &&
23. !Character.isWhitespace(c)) break;
24. end -= Character.charCount(c);
25. }
26. return end;
27. }