如何使用substring()方法在java中实现trim()方法

Ami*_*ati 3 java string

我知道这个问题非常愚蠢,但在一次采访中,我被告知要实现trim()方法,而不使用String类除了substring()方法之外的任何方法.

我通过使用toCharArray()然后识别String的第一个和最后一个有效字符来解决这个问题.但被告知不要使用toCharArray()方法.

有人可以提出一些方法来做到这一点.

允许使用Objects类的Overriden方法,如equals()和hashCode().

Gen*_*liu 5

String untrimmed = "  some   string   ";
String trimmed = "";

String innerSpaces = "";
boolean wordBoundary = true;

try {
    for (int i = 0; ; i++) {
        String substr = untrimmed.substring(i, i + 1);

        if (!substr.equals(" ") && !substr.equals("\t") && 
               !substr.equals("\n") && !substr.equals("\r")) {

            trimmed += innerSpaces + substr;
            wordBoundary = false;
            innerSpaces = "";
        }
        else if (!wordBoundary) {
            innerSpaces += substr;
        }
    }
}
catch (IndexOutOfBoundsException e)  { }

System.out.println(trimmed);
Run Code Online (Sandbox Code Playgroud)

  • 没有其他方法可以知道字符串何时结束而不知道它的长度.有什么建议? (4认同)
  • 鉴于荒谬的初始条件,这也是我最终的结果.但是,这些面试问题会让我无法接受这份工作. (3认同)
  • `try-catch`太可怕了 (2认同)