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 7 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

12 + 8 =