Galera estou tentando de uma forma automatica convertar uma data com regex sem utilizar de “substring” para que seje feita de uma forma mais rapida e automatica…
Como eu faria isso em regex?
Obrigado!
Galera estou tentando de uma forma automatica convertar uma data com regex sem utilizar de “substring” para que seje feita de uma forma mais rapida e automatica…
Como eu faria isso em regex?
Obrigado!
E de onde vc tirou a conclusao que expressao regular vai ser mais rapido?
Rafael
[quote=javaman00]Galera estou tentando de uma forma automatica convertar uma data com regex sem utilizar de “substring” para que seje feita de uma forma mais rapida e automatica…
Como eu faria isso em regex?
Obrigado![/quote]
Não sei exatamente qual a implementação que usaram para programar as regex do Java, mas pelo que sei expressão regular usa recursividade. Em geral recursividade é mais lento do que métodos iterativos, como o substring().
Pra ter certeza, só testando mesmo.
fala galera,
na verdade não sabia que seria mais lento utilizando regex…
mais de qualquer forma alguem poderia me explicar como obter o resultado que preciso? De uma forma automatica via regex?
Eu falo de uma forma “automatica” para nao ter que ficar colocando linhas e mais linhas para chegar nesse resultado…
obrigado!
public class DateAndRegex {
public String format(String date) {
/*
* Estamos partindo do pressuposto de que o parâmetro date sempre
* represente uma data válida.
*/
String
regex = "(\d\d)(\d\d)(\d{4})"
;
return
date.replaceAll(regex, "$1/$2/$3")
;
}
public static void main(String[] args) {
DateAndRegex app = new DateAndRegex();
System.out.println(app.format("13021981"));
}
}
Divirta-se!
Realmente não sei como funciona a lógica de expressões regulares em java.
mas todos os trabalhos que fiz com isso tiveram uma performance magnifica…
Não sei bem ao certo…
Mas ja nesse caso, não sei se é a melhor solução…
[quote=Mantu][code]
public class DateAndRegex {
public String format(String date) {
/*
* Estamos partindo do pressuposto de que o parâmetro date sempre
* represente uma data válida.
*/
String
regex = “(\d\d)(\d\d)(\d{4})”
;
return
date.replaceAll(regex, “$1/$2/$3”)
;
}
public static void main(String[] args) {
DateAndRegex app = new DateAndRegex();
System.out.println(app.format("13021981"));
}
}
[/code]
Divirta-se![/quote]
O mantu eh um verdadeiro delivery, fastfood ou coisa do tipo… :shock:
eh soh copy and paste
Valeu pela ajuda era isso mesmo que eu precisavas