![]() |
1
9
switch语句并没有那么糟糕。您的算法与电话号码的长度是线性的。代码可读,并且很容易通过检查进行验证。我不会把它弄乱的,除了增加一个
如果你
有
为了加快速度,预先初始化的按字符索引的表将避免基本错误检查之外的任何比较。您甚至可以通过复制表中的值来避免大小写转换。(
|
![]() |
2
6
您可以使用ApacheCommonsLangStringUtils执行此操作,如下所示:
当然,假设速度不是您主要关心的问题,并且您需要一个紧凑的解决方案;) |
![]() |
3
5
使用A
更新:
我很好奇一个手工编码的查找表是否比一个密集的查找表性能更好
令人惊讶的是,使用switch语句(编译为
当然,除非我只为我能转换的无限数量的电话号码中的每一个获得报酬,否则我绝不会写这样的代码。交换机的可读性更高,性能也很好,而且在未来的一些JVM中可能会获得免费的性能提升。
远远地说,对原始代码的最大改进是使用
|
![]() |
4
4
简单地说:
|
![]() |
5
2
如果你想要一个不强迫你列举所有字母的解决方案,你可以做如下的事情:
|
![]() |
6
1
如果您在一个紧密的循环中运行10^9次,并按ctrl键将其中断几次,我敢打赌,几乎每一次它都会深入到字符串类中,试图完成那些看起来无辜的“+=”运算符之一。 |
![]() |
7
0
switch语句被编译成类似于if else语句的形式,(每个
您可以通过消除一些比较来简化它。关键是
感兴趣的字符具有十六进制值:“0”=0x30、“9”=0x39、“A”=0x61和“Z”=0x7A。
编辑:
最好使用
StringBuilder
和
|
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |