en Java8 ¿Que es mas eficiente, recorrer un String o usar una expresión regurar?

Preguntas RecientesCategoria: Javaen Java8 ¿Que es mas eficiente, recorrer un String o usar una expresión regurar?
Juan Lopez Maldonado preguntada 12 meses antes

Me explico para un proyecto escolar realice un método que convierte Strings siguiendo la convención de guiones bajos en los nombres.
 
Ejemplos:

  • holaMundo hola_mundo
  • ProgramandoConJava  programando_con_java (notar que el al 1er carácter no le agrego el _ a pesar que la P esta en mayúsculas)

 
Dejo ambos métodos y mi pregunta: ¿cual dejo en el proyecto?, me interesa que el software resultante sea lo mas eficiente en cuanto el aprovechamiento de recursos.
 


    /**
     * Recibe un string en formato camelCase y lo devuelve en formato camel_case (underscore)
     * 
     * @param str
     * @param delimiter
     * @return 
     **/
    public static String under_score(String str) {
        if (str == null || str.length()<1) {
            return "";
        }
        String out = "" + Character.toLowerCase(str.charAt(0));
        for (int i =1; i<str.length(); i++) {
            char c = str.charAt(i);
            if (Character.isUpperCase(c)) {
                out += "_";
                c = Character.toLowerCase(c);
            }
            out += c;
        }
        return out;
    }

Por otra parte tengo un segundo método usando expresiones regulares:
 
 


public static String under_score2(String str) {
        if (str == null || str.length()<1) {
            return "";
        }
        String out = Character.toLowerCase(str.charAt(0)) + str.substring(1);
        return out.replaceAll("(.)(\\p{Upper})", "$1_$2").toLowerCase();
    }

Your Answer

0 + 5 =