2011-10-06 209 views
3

需要找到更多优化的Java编码方法。java最佳实践

这是一个非常简单的示例代码

int index1 = line.indexOf(" ", word1.length() + 1); 
if (!line.isEmpty() && index1 != -1) { 
line = line.substring(word1.length(), index1).trim().toLowerCase(); 
} 

if(!line.isEmpty() && line.indexOf(" ",word1.length()+1) != -1){ 
line = line.substring(word1.length(), index1).trim().toLowerCase(); 
} 

后来我发现是最你有更好的代码的可读性,或者更优化的代码之间做出选择的时代。哪一个更好?

+0

对于他们之前没有谁Java环境,或不喜欢一个编译器的人;我建议也写一个输入行的例子和预期的结果。 – darioo

+0

@Ali - 你什么时候会接受像你说的那样的答案? –

+0

斯蒂芬我正在那样做。说真的,我对这个论坛并不熟悉,我正在努力应对所有的规则。 – Ali

回答

17

在性能提升的边际或不完全有理由所有的情况下,瞄准

可读性

+0

+1:如果您看到将来有改进的空间,请将其设置为可读,但不要太难以优化。 – darioo

+0

但在这个例子中,第二种方法会更好,如果声明一个像index1这样的新变量,假设代码在一个大循环内,并且变量将在每次启动时更好。谢谢 – Ali

+1

@Ali,可读性在很多方面**主观**。 **我认为第一种方法更具可读性,尽管您可以通过使用例如分词器来进一步改进它,就像solovyev指出的那样。 –

1

在特定情况下,最好的解决办法是使用StringTokenizer的,你会不会有这个问题(我的意思是可读性)

0

不确定你想要达到的目标 - word1是第一行吗?

如果是的话,我会考虑大致如下更具可读性的东西:

String parts[] = line.split(" +"); 
if (parts.length > 1) { 
    line = parts[1]; 
}