【发布时间】:2016-02-05 21:20:50
【问题描述】:
我知道这个问题很傻,但是在一次采访中我被告知要实现 trim() 方法,而不使用 String 类中的任何方法,除了 substring() 方法。
我通过使用 toCharArray() 然后识别字符串的第一个和最后一个有效字符来解决这个问题。但被告知不要使用 toCharArray() 方法。
任何人都可以提出一些方法来做到这一点。
允许重写 Objects 类的方法,例如 equals() 和 hashCode()。
【问题讨论】:
-
使用
String#equals(..)算作String类的方法吗?我认为它会,但我想检查 b/c 它是来自Object的覆盖方法 -
提示:
String.indexOf() -
这似乎是一个可怕的问题。我可以想出一种仅使用
substring和equals来实现它的方法,但这将是一种可怕的方法。为什么要强迫某人编写糟糕的糟糕代码? -
你连
length()都不能用吗?如果是这样的话,这是一个非常非常糟糕的面试问题。它基本上是在问,“你能设计出一些过于复杂和低效的东西,以至于没有人愿意维护它吗?” -
恕我直言,这不是一个糟糕的面试问题。虽然有人问,但这并非不可能。这只是为了测试一次答案和逻辑思维。将字符串读入某种字节缓冲区并找到空格,同时记住它们的位置,然后进行子串化似乎并非不可能。