Substring() vs. charAt()

Buenas galera,

Durante a manutenção em alguns sistemas aqui da empresa me deparei com o seguinte trecho de código que me deixou intrigado:

if (script.charAt(x) == '{' && script.charAt(x + 1) == '?' && script.charAt(x + 2) == '}') { //code } Sinceramente, eu teria feito assim:

private static final String CORINGA = "{?}";//constante pq eh feita comparacao + vezes if (script.substring(x, x+3).equals(CORINGA) ) { //code }
Mas me pergunto porque o cidadão escolheu a primeira forma? :?
Sei que quando você utiliza o método subString() você cria uma nova String, mas…
É utilizar encadeamento de charAt() é mais performático?
A JVM não aloca espaço para armazenar [color=red]char[/color]?
Utiliza menos memória?
O cara não sabe programar?
EU não sei programar? rs :wink:

[]'s

Eu particularmente faria com regex :stuck_out_tongue:

O cara sabe programar sim, você também, não sei qual é mais ou menos performática e acho que a diferença deve ser irrisória, apenas foram duas abordagens para o problema.

Concordo que Regular Expressions seria o ideal.
http://download.oracle.com/javase/tutorial/essential/regex/

Cada programador as vezes para resolver o mesmo problema usam lógicas diferentes.
Acredito a diferença foi exatamente como resolver o problema.

regex ³

Concordo que regex é a melhor solução.

Mas entre as duas apresentadas, a primeira é muito mais confusa.

Att

Já na minha opinião… eu criaria uma logica usando o metodo indexOf por ser mais performatico que utilizar o substring ou uma RegExp… porem… a abordagem do seu amigo desconhecido também é mais performatica que substring.