es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mayúsculas después de signos de puntuación, pero con algunas excepciones

Mis excepciones son:

Mayúscula al comienzo de la oración o después de un signo de puntuación.
Agregar un espacio después del signo de puntuación.
Después de una abreviatura, no usar mayúsculas.
Después de un “- ” (con un espacio), usar mayúsculas.
Después de un “-” (sin espacio), no capitalizar.

Mi código con las excepciones:

private static char[] PUNCTUATION_MARKS = { ‘?’, ‘!’, ‘;’, ‘.’, ‘-‘ };

applyCorrectCase(“step 1 – take your car”);
applyCorrectCase(“reply-to address”);
applyCorrectCase(“req. start”);
applyCorrectCase(“alt. del. date [alternate detection date]”);
applyCorrectCase(“you are.important for us? to continue?here! yes”);

String applyCorrectCase(String value) {
String lowerCaseValue = value.toLowerCase();
if (value.contains(“. “)) {
lowerCaseValue = value.replace(“. “, “.”);
}
lowerCaseValue = WordUtils.capitalize(lowerCaseValue, PUNCTUATION_MARKS);
System.out.println(lowerCaseValue.replace(“.”, “. “));
}

Este es el resultado esperado:

Step 1 – Take your car
Reply-to address
Req. start
Alt. del. date [alternate detection date]
You are. Important for us? To continue? Here! Yes

¿Alguna idea para corregir mi código?

ACTUALIZACIÓN

Sobre el código if (value.contains(“. “)) { y System.out.println(lowerCaseValue.replace(“.”, “. “)); lo hice antes de tener más signos de puntuación para verificar, ahora que tengo más, no funciona.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Aquí está el código actualizado:

    private static char[] PUNCTUATION_MARKS = { '?', '!', ';', '.', '-' };
    
    applyCorrectCase("paso 1 - toma tu coche");
    applyCorrectCase("dirección de respuesta");
    applyCorrectCase("inicio de req.");
    applyCorrectCase("fecha de entrega alternativa [fecha de detección alternativa]");
    applyCorrectCase("¿eres importante para nosotros? ¿para continuar? ¡aquí! sí");
    
    String applyCorrectCase(String value) {
        String lowerCaseValue = value.toLowerCase();
        for (char punctuationMark : PUNCTUATION_MARKS) {
            if (value.contains("" + punctuationMark + " ")) {
                lowerCaseValue = value.replace("" + punctuationMark + " ", "" + punctuationMark);
            }
        }
        lowerCaseValue = WordUtils.capitalize(lowerCaseValue, PUNCTUATION_MARKS );
        System.out.println(lowerCaseValue.replace(".", ". "));
    }
    

    Estos son mis resultados:

    Paso 1 - Toma tu coche
    Dirección de respuesta
    Inicio de req.
    Fecha de entrega alternativa [fecha de detección alternativa]
    ¿Eres importante para nosotros? ¿Para continuar? ¡Aquí! Sí <--- La 'y' después del '!' debe ser mayúscula
    

Comments are closed.